假设我想要:
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]
,则只检查一个符号/字符(除G
和R
以外的字符),而不检查字符序列。关于c# - 正则表达式全部匹配,除非?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37052326/