我正在寻找一个正则表达式,可以检测0
到100
范围内的任何给定数字,不包括1
和3
。
有效数字的示例:
0, 2, 4, 6,13, 23 80, 99, 100
应该失败的数字:
1, 3
提前致谢。
答案 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 classes与limiting quantifiers。
如果(?!(?:1|3)$)
或(|
)1
出现在字符串开头(3
)之后,^
前瞻确保匹配失败,在字符串($
)结束之前(或在第二个示例中的字边界之间)。
[0-9]{1,2}
字符类匹配从{1,2}
到0
的1位或2位数(由于限制量词9
)。