0-100数字范围正则表达式,不包括1和3

时间:2015-07-03 11:55:40

标签: regex

我正在寻找一个正则表达式,可以检测0100范围内的任何给定数字,不包括13

有效数字的示例:

0, 2, 4, 6,13, 23 80, 99, 100

应该失败的数字:

1, 3 

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

检测0到100范围内的任何给定数字,但不包括1和3

^(?!(?:1|3)$)(?:[0-9]{1,2}|100)$

请参阅demo

如果数字不是独立字符串:

\b(?!(?:1|3)\b)(?:[0-9]{1,2}|100)\b

请参阅another demo

这里的要点是look-ahead开头anchors\b字边界,^开头和字符串$结尾)和character classeslimiting quantifiers

如果(?!(?:1|3)$)或(|1出现在字符串开头(3)之后,^前瞻确保匹配失败,在字符串($)结束之前(或在第二个示例中的字边界之间)。

[0-9]{1,2}字符类匹配从{1,2}0的1位或2位数(由于限制量词9)。