我正在尝试抓取字符串中可以用不同数量的空格分隔的每个单词。
my $ff = "Disk DSM Policy Paths Serials";
if($ff =~ m/(\w+)/) {
print $1;
print $2;
print $3;
}
我认为它会像\ w一样简单,但它只能得到第一个字?我做错了吗?
答案 0 :(得分:5)
您需要match g
lobally。
my $ff = "Disk DSM Policy Paths Serials";
my (@words_match) = $ff =~ /(\w+)/g;
# (
# 'Disk',
# 'DSM',
# 'Policy',
# 'Paths',
# 'Serials'
# )
更好的解决方案是split。
my @words_split = split ' ', $ff;
# (
# 'Disk',
# 'DSM',
# 'Policy',
# 'Paths',
# 'Serials'
# )