我之前从未使用过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
我想将此字符串拆分为'。'但我想保持这个时期。怎么能实现呢?
答案 0 :(得分:25)
您可以使用lookbehind来执行此操作:
split(/(?<=\.)/, $string)
正则表达式匹配句点后面的空字符串。
如果您想同时删除句子之间的空格,可以将其更改为:
split(/(?<=\.)\s*/, $string)
解释了正面和负面的外观here
答案 1 :(得分:12)
如果你不介意在数组中将句点拆分成它们自己的元素,你可以使用括号来告诉split保留它们:
my @array = split(/(\.)/, $string);