我是 PERL 的新手,正在使用正则表达式来匹配等于或超过 3 个字母的单词。这是我正在尝试的程序。我尝试添加 \w{3,} 因为它应该匹配更多的 3 个字符。但它仍然匹配一个单词中的 <3 个字符。例如,如果我给出“这是一个模式”。我希望我的 $field 只匹配“This”和“Pattern”并跳过“is”和“a”。
#!/usr/bin/perl
while (<STDIN>) {
foreach my $reg_part (split(/\s+/, $_)) {
if ($reg_part =~ /([^\w\@\.]*)?([\w{3,}\@\(\)\+\$\.]+)(?::(.+))?/) {
print "reg_part = $reg_part \n";
my ($mod, $field, $pat) = ($1, $2, $3);
print "#$mod#$field#$pat#$negate#\n";
}
}
}
exit(0);
我错过了什么?