Perl中的条件分裂

时间:2011-11-14 03:27:03

标签: linux perl unix text-processing

我有以下句子:

my $sent = 'D. discoideum and D. purpureum developmental programs revealed';

有没有办法可以分割线条,使两个连续的单词有'。'中间的(点)将被视为一个单词?

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

$VAR = ['D. discoideum', 
         'and', 
         'D. purpureum',
         'developmental',
         'programs',  
         'revealed'];

标准s/\s+//g将根据空间分割所有内容。

2 个答案:

答案 0 :(得分:9)

尝试拆分:

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

此表达式匹配任何不遵循句点的空格字符,而不匹配句点本身。

答案 1 :(得分:2)

没有使用正则表达式进行拆分:

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