文字列のパターンに一致する次のルールがあります。
英数字 2 文字、その後に 0 または 1 個のアルファベット、その後に 0 個以上のスペース、その後に 1 ~ 4 桁の数字
正規表現を試しましたが、まだいくつかのケースを見逃しています。
これが私のコードです:
#!/usr/bin/perl
use strict;
use warnings;
my @quer = ('a1q 1234', '11 asdd', 'as 11aa', 'asdasdasd', 'asdd as', 'asdasd asdassdasd', '11 1231', '11 a 12345', '345 1 1231', '12a 123', 'ab 12', 'ab12');
foreach my $query (@quer) {
if ($query =~ m/\b[a-zA-Z0-9]{2}[a-zA-Z]{0,1}\s*\b[0-9]{1,4}\b/) {
print "Matched : $query\n";
} else {
print "Doesn't match : $query\n";
}
}
私のコードは一致していますが、一致ab 12
していませんab12
が、ルールによれば、両方に一致するはずです。