我现在的正则表达式:
/^[0-9]{3}$/
如果值是一个长度为2的整数,则匹配。
我需要通过仅匹配0 - 32之间的值来进一步扩展它。
0 <- not match
1 <- match
2 <- match
...
29 <- match
30 <- match
32 <- not match
33 <- not match
测试你的正则表达式: https://regex101.com/
答案 0 :(得分:2)
这有效:
/^((?:[1-9])|(?:[1-2][0-9])|(?:3[0-1]))$/
用Python测试:
for i in range(0,321):
m=re.match(r'^((?:[1-9])|(?:[1-2][0-9])|(?:3[0-1]))$', str(i))
if m:
print i
# prints 1-31...
在Bash / Perl中测试:
$ echo {0..3500} | tr ' ' '\n' | perl -nle 'print $1 if /^((?:[1-9])|(?:[1-2][0-9])|(?:3[0-1]))$/'
prints 1-31
中进行测试
答案 1 :(得分:0)
可以像这样形成所需的正则表达式
/^[1-9]$|^[1-2][0-9]$|^3[0-2]$/
此外,给定的正则表达式只匹配3位整数。