我想在文档中搜索以下字符串
<whoName>[substring]</whoName>
where substring!=&#34; self&#34;
所以
<whoName>other</whoName>
会通过。
但是
<whoName>self</whoName>
会失败
答案 0 :(得分:3)
你可以使用这种基于正则表达式的负前瞻:
<(whoName)>(?!self\s*<).*?<\/\1>
正则表达式分手:
<(whoName)> # Match <whoName> and capture it ($1)
(?!self\s*<) # Negative lookahead that means current position is not followed by literal
# self followed by 0 or more spaces and <
.*? # Match 0 or more characters (non-greedy)
<\/\1> # Match closing tag using back-reference to captured group #1
答案 1 :(得分:1)
使用此正则表达式:
^<whoName>((?!self<).)*</whoName>
在记事本++和regex101中测试
答案 2 :(得分:1)
您可以找到解决方案here。
您可以使用类似
的内容<whoName>(?!self)[a-z0-9]*<\/whoName>
(试试这里:https://regex101.com/r/vW8sP3/1)。
您可以想象相关部分是(?!self)
。