假设我想要:

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

这些都不起作用。
不过,我发誓我对regex的感觉越来越好了:)我在没有寻求so帮助的情况下成功地击倒了最后6次尝试,但我又一次陷入了困境:(

最佳答案

如果是GR,则不匹配ID
如果您要匹配单词末尾的ID,并且前面没有GR,请使用

(?<!GR)ID\b

this regex demo
注意(?<!GR)是一个负lookbehind,如果lookbehind模式在字符串中当前位置的左侧找到匹配,则匹配失败。如果使用否定字符类[^GR],则只检查一个符号/字符(除GR以外的字符),而不检查字符序列。

关于c# - 正则表达式全部匹配,除非?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37052326/

10-10 21:47