我为此感到苦恼,我必须匹配以_ERROR
结尾的字符串,但我想跳过包含SET_ERROR
的字符串
到目前为止,这里是我最好的尝试:/\w*(?!SET)_ERROR\b/
,但是它不起作用。
答案 0 :(得分:3)
您可以使用
\b(?!SET_ERROR\b)\w*_ERROR\b
请参见regex demo。它匹配单词边界(\b
),然后确保在当前位置的右边没有完整的单词SET_ERROR
(请参见否定的前瞻(?!SET_ERROR\b)
),然后消耗0+字符char和_ERROR
后跟单词边界。
如果您有一个后备支持:
\w*_(?<!\bSET_)ERROR\b
请参见another demo。在这里,\w*
消耗了0+个单词字符,_
被匹配,然后(?<!\bSET_)
的否定向后查找确保之前消耗的单词chars不是SET_
(整个单词) 。然后,ERROR\b
匹配整个单词ERROR
。