标签: regex
我很困惑,但无法弄清楚为什么我的正则表达式不起作用。 这是一个输入应该接受0到40之间的数字范围。它应该拒绝0和00,但接受1或01并进一步......
我哪里错了?
\b([1-3]?\d{1}|40)\b
答案 0 :(得分:2)
[1-3]?\d{1}
匹配0,因为[1-3]是可选的,\d当然包含0。此外,{1}是无操作 - 根据定义,每个令牌都匹配一次。
0
[1-3]
\d
{1}
你需要这样的东西:
\b(0?[1-9]|[1-3]\d|40)\b