私は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);
私は何が欠けていますか?