正则表达式 - select 都没有特定属性且没有新行

Regex expression - select all NOT having a specific attribute and NO new lines

如果想要 select 任何具有 XML 语句但其中需要缺少属性的行。所以我能够很容易地找到坏数据。

所以这里的解决方案有效,但在我的示例中我没有任何新行。它没有任何空格。

正则表达式:

/^<SomeState((?!SearchedAttribute).)*$/gm

适用于:

但是当空格被删除时它不会因为 ^

它再也找不到它们了。

如何将所有内容放在同一行上?

想法 #1:

/<SomeState((?!SearchedAttribute).)*/gm

已经更好了,但我不想再有条件 selected:

测试字符串:

<SomeState><SearchedAttribute Key=Value/></SomeState>
<SomeState><SearchedAttribute Key=Value/></SomeState>
<SomeState Attr1><BadAttribute Key=Value/></SomeState>
<SomeState><SearchedAttribute Key=Value/></SomeState>
<SomeState><BadAttribute Key=Value/></SomeState>

我通过删除空格找到了解决方案。所以如果你有 notepad++XML Tools 插件。您将可以选择 Linarize XML:

现在复制单行 XML 字符串并通过此正则表达式 运行 复制它:

/<SomeState((?!SearchedAttribute).)*SomeState/gm

这按预期工作,只是选择了错误的 extries。