Notepad++ 正则表达式在 XML 中查找与特定值不匹配的结果

Notepad++ regex find results in XML that does not match a certain value

我正在尝试从 XML 中的某个父标记点进行搜索,并查看其中是否有子标记 此父标记没有特定值。例如你有这个:

<situation xsi:type="..." id="TYU_A3213132343">
        ....
        <probability>likely</probability>
        .....
</situation>

如果我想用这个值按概率搜索这个,我可以使用这个:

<situation xsi:type="([^\"]*)\" id="TYU_A(?:(?!</situation>).)+<probability>likely</probability>

但我想更改此正则表达式,以便它找到如下内容:

<situation xsi:type="..." id="TYU_A3213132343">
        ....
        <probability>randomvalue</probability>
        .....
</situation>

所以我正在搜索概率与 likely 值不匹配的结果。有人知道上面的正则表达式需要更改什么吗?

只需将 likely 更改为 (?:(?!likely)(?!</probability>).)+,使其在到达 </probability> 之前匹配所有非 likely 的内容:

<situation xsi:type="([^\"]*)\" id="TYU_A(?:(?!</situation>).)+<probability>(?:(?!likely)(?!</probability>).)+</probability>