假设我想:
TESTGRID - NOT MATCH
testgrid - NOT MATCH
ACTIVEID - MATCH
activeID - MATCH
testRID - MATCH
我试过了:
(?!([^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
其中任何一个都无效。
我发誓我正在用正则表达式做得更好,但是:)我已经设法在没有寻求SO帮助的情况下淘汰了最后6次尝试,但我又一次陷入困境:( / p>
答案 0 :(得分:3)
如果ID先于GR
,则不匹配ID
如果您想匹配单词末尾的ID
,并且前面没有GR
,请使用
(?<!GR)ID\b
请注意,(?<!GR)
是一个负向后视,如果后方模式在字符串中找到当前位置左侧的匹配项,则会使匹配失败。如果使用[^GR]
,一个否定的字符类,则只检查一个符号/字符(G
和R
以外的字符),而不是字符 sequence < / em>的