В JavaScript у строк имеется метод
split, который разбивает строку по переданному разделителю и возвращает результаты разбиения в массиве.
Разделителем может быть строка или регулярное выражение.
Выглядит это так:
>>> 'qwertyuiop'.split( 't' ); // Вызов метода с разделителем-строкой
Array ["qwer", "yuiop"] // Результат
'qwertyuiop'.split( /t/ ); // Вызов метода с разделителем-регэкпом без групп
Array ["qwer", "yuiop"] // Результат
'qwertyuiop'.split( /(t)/ ); // Вызов метода с разделителем-регэкпом с группой
Array ["qwer", "t", "yuiop"] // Результат
То есть если в регэкспе присутствуют группы, они попадают в результаты разбиения, если нет — так нет.
Вопрос: результат какого из нижеизложенных вызовов метода
split будет наибольшим?
То есть длина какого из возвращённых массивов будет максимальной? (И почему? ;))
'qwertyuiop'.split( '' );
'qwertyuiop'.split( /(.*?)/ );
'qwertyuiop'.split( /(.*)/ );
'qwertyuiop'.split( /(.+?)/ );
'qwertyuiop'.split( /\u0000/ );
'qwertyuiop'.split( /()/ );
'qwertyuiop'.split( /(.+)/ );
'qwertyuiop'.split( /(?:)/ );
А какие результаты будут совпадать?
Кому интересны другие языки (а JS вызывает рвотные позывы), могут проверить задачу на них.