多重拒绝选择的正则表达式

时间:2015-06-25 13:27:12

标签: regex

我是正则表达世界的新手。我一直在使用正则表达式,但今天我发现了一个我无法解决的问题。我在论坛上搜索但没有运气。

我必须像负面比赛那样做。我必须匹配EOS.1EOS.2等表格,但最多只有EOS.9000个表格。它们不是连续的,我必须留下一些表格,如909122933750等。

我尝试了这种模式:

 EOS\.(?!91|90|2300|2504|3747|3750|100|3788|2303|2304|2293)

但是,它只匹配EOS.部分,而不是数字。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

\bEOS\.(?!(91|90|2300|2504|3747|3750|100|3788|2303|2304|2293)\b)(?:[1-9][0-9]{0,2}|[1-8][0-9]{3}|9000)\b

请参阅demo

此正则表达式匹配完整单词EOS后跟文字.和1到9000之间的数字,不包括负向前瞻中的数字。

您的EOS\.(?!91|90|2300|2504|3747|3750|100|3788|2303|2304|2293)正则表达式仅与EOS.部分匹配,因为预测不消耗字符,只检查它们的存在与否。