正则表达式匹配所有除非?
Regex Match All Unless?
假设我想要:
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
None 其中正在运行。
我发誓我在使用正则表达式方面做得越来越好:)我在没有寻求 SO 帮助的情况下成功完成了最后 6 次尝试,但我再次陷入困境:(
Don't match ID if it is preceeded with GR
如果您要匹配单词末尾的 ID
,并且前面没有 GR
,请使用
(?<!GR)ID\b
请注意,(?<!GR)
是一个负向后视,如果后视模式在字符串中当前位置的左侧找到匹配项,则匹配失败。如果您使用 [^GR]
,一个取反字符 class,那么只会检查一个 symbol/character(G
和 R
以外的字符),而不是一个字符序列.
假设我想要:
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
None 其中正在运行。
我发誓我在使用正则表达式方面做得越来越好:)我在没有寻求 SO 帮助的情况下成功完成了最后 6 次尝试,但我再次陷入困境:(
Don't match ID if it is preceeded with GR
如果您要匹配单词末尾的 ID
,并且前面没有 GR
,请使用
(?<!GR)ID\b
请注意,(?<!GR)
是一个负向后视,如果后视模式在字符串中当前位置的左侧找到匹配项,则匹配失败。如果您使用 [^GR]
,一个取反字符 class,那么只会检查一个 symbol/character(G
和 R
以外的字符),而不是一个字符序列.