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
Я хочу разбить эту строку на. Но я хочу сохранить этот период. как это можно сделать?
Ответы
Ответ 1
Вы можете использовать lookbehind для этого:
split(/(?<=\.)/, $string)
Регулярное выражение соответствует пустой строке, следующей за периодом.
Если вы хотите удалить пробелы между предложениями одновременно, вы можете изменить его на:
split(/(?<=\.)\s*/, $string)
Положительный и отрицательный lookbehind объясняется здесь
Ответ 2
Если вы не возражаете, чтобы периоды были разбиты на свои собственные элементы в массиве, вы можете использовать круглые скобки, чтобы сообщить split, чтобы их сохранить:
my @array = split(/(\.)/, $string);