我希望有一个正则表达式来验证从046R到120R的任何字符串。
听起来很简单,但我在这里遗漏了一些东西。 这就是我所拥有的:
^04[6-9]R|0[5-9][0-9]R|10[0-9]R|11[0-9]R|120R +$
但它并没有把120R作为一个有效的字符串。这个表达式可以简化吗?
提前致谢。
答案 0 :(得分:2)
删除最终的 +
。否则,在验证字符串120R
之后需要一个或多个空格。
此外,|
的优先级非常低。 ^
和$
应该位于包含|
的群组之外。
^(?:04[6-9]|0[5-9][0-9]|1[01][0-9]|120)R\s*$
答案 1 :(得分:1)
您可以使用否定前瞻排除某些匹配,并简化正则表达式。
^(?!0[0-3])(?!04[0-5])[01]\d\dR$