16

我以前从未使用过 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

我想在'。'分割这个字符串。但我想保持这个时期。如何做到这一点?

4

2 回答 2

26

你可以使用lookbehind来做到这一点:

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

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

如果要同时去掉句子之间的空格,可以改成:

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

正面和负面的lookbehind在这里解释

于 2013-02-16T07:02:24.273 回答
12

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

my @array = split(/(\.)/, $string);
于 2013-02-16T06:53:58.357 回答