split()但保持分隔符

时间:2013-02-16 06:47:41

标签: perl 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

我想将此字符串拆分为'。'但我想保持这个时期。怎么能实现呢?

2 个答案:

答案 0 :(得分:25)

您可以使用lookbehind来执行此操作:

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

正则表达式匹配句点后面的空字符串。

如果您想同时删除句子之间的空格,可以将其更改为:

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

解释了正面和负面的外观here

答案 1 :(得分:12)

如果你不介意在数组中将句点拆分成它们自己的元素,你可以使用括号来告诉split保留它们:

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