我有以下规则来匹配字符串中的模式。
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
,但根据规则,它应该匹配两者。