c# – 正则表达式全部匹配除非?
作者:互联网
假设我想:
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
这些都不起作用.
我发誓我正在用正则表达式做得更好,但是:)我已经设法在没有寻求帮助的情况下淘汰了最后6次尝试,但我又一次被卡住了:(
解决方法:
Don’t match ID if it is preceeded with GR
如果您要匹配单词末尾的ID,并且前面没有GR,请使用
(?<!GR)ID\b
注意,(?<!GR)是一个负面的lookbehind,如果lookbehind模式找到与字符串中当前位置左边的匹配,则匹配失败.如果使用[^ GR],一个否定的字符类,则只检查一个符号/字符(G和R以外的字符),而不是字符序列.
标签:c,substring,regex,negative-lookahead 来源: https://codeday.me/bug/20190628/1311577.html