split()但保持分隔符

Sys*_*Fun 16 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
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*mar 25

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

split(/(?<=\.)/, $string)
Run Code Online (Sandbox Code Playgroud)

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

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

split(/(?<=\.)\s*/, $string)
Run Code Online (Sandbox Code Playgroud)

这里解释正面和负面的外观


Dan*_*ard 12

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

my @array = split(/(\.)/, $string);
Run Code Online (Sandbox Code Playgroud)