如何严格按照格式$message
CRs: <numbers separated by comma and a space>
的值
e.g:
#good
CRs: 1234, 2345, 6789
CRs: 54321
#bad ones:
CRs: 1234 2345 6789
CRs: 1234 , 2345 , 6789
CRs: 1234,2345,6789
我的RE不完整如下:
if ($message !~ m/CRs:\s+\d+,?/) {
print "ERROR";
}
答案 0 :(得分:4)
答案 1 :(得分:3)
您需要检查重复:
...
if ( $message !~ m/^CRs:\s+\d+(?:,\s+\d+)*$/ ) {
print "ERROR";
}
...
非捕获组结束后 *
表示匹配零次或多次
您还可以使用锚点^
(行首)和$
(行尾)确保您没有获得部分匹配。即123, 456, 789 aaaaaa
在没有行结束锚的情况下有效。