正则表达式验证字母数字连续字符串

时间:2011-04-03 21:10:48

标签: regex

我希望有一个正则表达式来验证从046R到120R的任何字符串。

听起来很简单,但我在这里遗漏了一些东西。 这就是我所拥有的:

^04[6-9]R|0[5-9][0-9]R|10[0-9]R|11[0-9]R|120R +$

但它并没有把120R作为一个有效的字符串。这个表达式可以简化吗?

提前致谢。

2 个答案:

答案 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$
相关问题