Notepad++ Regex Search XML 参数除特定单词外的任何内容

Notepad++ Regex Search XML argument for anything but certain word

我有一个结构良好的 XML 文件,其中包含多个分组单元,其中包含一致数量的子元素。

我试图找到一种方法,通过 Notepad++ 中的正则表达式,在所有这些组中搜索包含单个单词的特定参数。我找到了一种方法,但问题是我想找到这个词的否定,这意味着例如,如果这个词是“downward”我想找到任何东西不是向下”。

这是一个例子:

<xml:jus id="84" trek="spanned" place="downward">

我想出了 <xml:jus id="\d+" trek="[\w]*" place="\<downward"> 来找到这些标签,但我需要在 [=13] 中找到所有其他没有“downward”的匹配项=] 参数。我尝试了 <xml:jus id="\d+" trek="[\w]*" place="^\<downward"> 但没有成功。

感谢任何帮助。

您可以使用否定前瞻将 downward 排除在以下位置之外:

<[^>]+ place="(?!downward").*?"[^>]*>

Demo

如果属性和字符串的格式相同,您也可以利用SKIP FAIL先匹配您要排除的内容。

<xml:jus id="\d+" trek="\w+" place="downward">(*SKIP)(*F)|<xml:jus id="\d+" trek="\w+" place="[^"]+">

Regex demo