Подтвердить что ты не робот

Split(), но сохраняйте разделитель

Я никогда раньше не использовал Perl, и у меня есть основной вопрос.

 my $string1 = "Hi. My name is Vlad. It is snowy outside.";

 my @array = split('.' $string1); ##essentially I want this, but I want the period to be kept

Я хочу разбить эту строку на. Но я хочу сохранить этот период. как это можно сделать?

4b9b3361

Ответ 1

Вы можете использовать lookbehind для этого:

split(/(?<=\.)/, $string)

Регулярное выражение соответствует пустой строке, следующей за периодом.

Если вы хотите удалить пробелы между предложениями одновременно, вы можете изменить его на:

split(/(?<=\.)\s*/, $string)

Положительный и отрицательный lookbehind объясняется здесь

Ответ 2

Если вы не возражаете, чтобы периоды были разбиты на свои собственные элементы в массиве, вы можете использовать круглые скобки, чтобы сообщить split, чтобы их сохранить:

my @array = split(/(\.)/, $string);