VB.NET或C#中的正则表达模式UNMATCH

时间:2011-03-07 22:13:27

标签: c# regex vb.net

需要一个模式来匹配一个不应该是 -

的字符串
777777777
888888888
999999999

或以000204开头。

当我试图创建一个符合上述要求的模式时,我通过 -

完成了它
Dim _pattern6 As String = "^(7+|8+|9+|(00|07|08|09|17|18|19|28|29|43|48|69|70|78|79|80|96|97).*)$"

无法完成NOT MATCH部分。

3 个答案:

答案 0 :(得分:3)

你想要的是 negative lookahead

@"^(?!([789])\1{8}$|0[024]).*$"

否定前瞻(?!...)意味着“此位置后面的任何内容都无法与这些模式中的任何一种相匹配。”因此(?!7{9}).*表示“任何字符串(.*)不会以9行7开头。” ([789])\1{8}$是9个重复数字的简写。它的意思是“7,8或9,其次是8次。”

在RegexPlanet上进行测试:http://fiddle.re/tz8p

答案 1 :(得分:1)

您可以尝试匹配不需要的部分。如果返回true,则表示“不匹配”的尝试是错误的,反之亦然。

答案 2 :(得分:-2)

你去吧

[^(7{9}|8{9}|9{9}|00|02|04)]+