匹配的正则表达式但不匹配?

时间:2014-05-09 05:04:10

标签: regex

如何获得匹配

匹配的正则表达式
[2-9][0-9][0-9]

但不匹配

303|719|720|970

例如,正则表达式应匹配406,但不匹配719(因为它匹配第二个正则表达式)或3333(因为它与第一个正则表达式不匹配)。

1 个答案:

答案 0 :(得分:2)

通常,你会使用负向前瞻和锚点:

^(?!303|719|720|970)[2-9][0-9][0-9]$

这可以防止负向前瞻中的数字匹配,同时匹配问题中第一个正则表达式匹配的所有数字。

regex101 demo

通常情况下,如果你想提高正则表达式有很多变化的速度,你可以进行一些合并,但你可能会失去一些可读性(以下是一种方法):

^(?!303|7(?:19|20)|970)[2-9][0-9][0-9]$