正则表达式不匹配某些字符
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})
- 接下来的两个字符不能是 1
、2
、3
或 |
(..)
- 第 2 组:除换行符以外的任意 2 个字符。
(=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})
- 接下来的两个字符不能是1
、2
、3
或|
(..)
- 第 2 组:除换行符以外的任意 2 个字符。