Linux Perl中的条件拆分

Linux Perl中的条件拆分,linux,perl,unix,text-processing,Linux,Perl,Unix,Text Processing,我有以下句子: my $sent = 'D. discoideum and D. purpureum developmental programs revealed'; 有没有一种方法可以将行分开,这样中间有“.”(点)的两个连续单词将被视为一个单词 因此,我们希望在拆分后得到: $VAR = ['D. discoideum', 'and', 'D. purpureum', 'developmental', 'prog

我有以下句子:

my $sent = 'D. discoideum and D. purpureum developmental programs revealed';
有没有一种方法可以将行分开,这样中间有“.”(点)的两个连续单词将被视为一个单词

因此,我们希望在拆分后得到:

$VAR = ['D. discoideum', 
         'and', 
         'D. purpureum',
         'developmental',
         'programs',  
         'revealed'];
标准的
s/\s+//g
将根据空间分割所有内容。

尝试在以下位置进行分割:

/(?<!\.)\s+/
/(?

此表达式匹配任何不在句点之后的空格字符,但不匹配句点本身。

不使用正则表达式拆分:

my @words = $sent =~ /(\S+\.\s+\S+|\S+)/g;

+1-谢谢,当你发表评论时,我正在测试这一点。我以为我可以做到,而无需提前/延迟,然后意识到整个“最后一封信不是句号”部分。