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

regex not to match certain characters

(=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

要限制预期匹配项的最后两个字符,您可以使用前瞻并使用 ..:

使用这些字符
(=606.{2})(?![123|]{2})(..)
          ^^^^^^^^^^^^^

这匹配

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

参见.NET regex demo