正则表达式匹配所有除非?

Joh*_*ohn 5 c# regex substring regex-lookarounds

假设我想要:

TESTGRID - NOT MATCH
testgrid - NOT MATCH
ACTIVEID - MATCH
activeID - MATCH
testRID - MATCH
Run Code Online (Sandbox Code Playgroud)

我试过了:

(?!([^GR]))ID*?\b (I really thought I had it with this one - Don't match ID if it is preceeded with GR, right?
(?!([^GRID]))ID*?\b
(?!([GRID]))ID*?\b
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。

我发誓我在正则表达式方面做得越来越好,尽管:)我已经成功地完成了最后 6 次尝试,而没有寻求 SO 的帮助,但我再次陷入困境:(

Wik*_*żew 4

如果 ID 前面带有 GR,则不匹配 ID

如果您要匹配ID位于单词末尾且前面不带 的GR,请使用

(?<!GR)ID\b
Run Code Online (Sandbox Code Playgroud)

请参阅此正则表达式演示

请注意,如果lookbehind 模式在字符串中当前位置的左侧找到匹配项,则这(?<!GR)是一个负lookbehind ,匹配失败。如果您使用[^GR],一种否定的字符类,则仅检查一个符号/字符(除了G和之外的字符R),而不是字符序列