正则表达式不匹配某些字符

时间:2018-08-02 13:32:11

标签: .net regex regex-negation

(=606.{2})([123|]{2})

匹配

=606  1|

但是我如何才能使其仅匹配不匹配的情况? 例如,我需要找到以下情况:

=606  4|

我尝试过但没有匹配项:

(=606.{2})([^123|]{2})

所有字符串都具有以下模式:

=\d\d\d\s\s..

我需要验证..字符,该字符可以采用以下值: 1,2,3,|

所以我需要一个正则表达式,它将匹配所有不适用于上述规则的字符串

也尝试过 ^(?!=606.{2}[123|]{2}),并且也不匹配

=606 4|

我在这里测试 http://regexstorm.net/tester

1 个答案:

答案 0 :(得分:1)

要限制预期匹配的最后两个字符,可以先行使用并使用..使用这些字符:

(=606.{2})(?![123|]{2})(..)
          ^^^^^^^^^^^^^

这符合

  • (=606.{2})-组1:=606和除换行符外的2个字符
  • (?![123|]{2})-接下来的两个字符不能为123|
  • (..)-组2:除换行符以外的任意2个字符。

请参见.NET regex demo