【问题标题】:RegEx to delete all XML data outside of specified tagsRegEx 删除指定标签之外的所有 XML 数据
【发布时间】:2023-03-30 02:52:01
【问题描述】:

我正在使用最新最好的 NotePad++ 版本。 RegEx 是否可以删除我不需要的所有文本和标签,只留下我需要的文本和标签?我需要保留的标签如下所示:

<warning>I need this text to remain intact together with accompanying tags.</warning> 

必须有大约 500 个这样的 WARNING 标记对嵌套在各种 XML 级别中。我希望 RegEx 删除这些 WARNING 标签之外存在的所有数据,但不删除打开和关闭警告标签本身或标签内的文本。以下是我测试的四种不同的 RegEx 变体,它们在执行 Find&Replace 操作后都消除了位于警告标签内的文本,因此它们没有帮助:

<warning>[^<>]+</warning>

<warning>[^>]+</warning>

<warning>(.+?)</warning>

<warning>.*?</warning>

如果能帮助我开发一个能够执行我需要执行的数据清理任务的正则表达式,我将不胜感激。

【问题讨论】:

  • 你能举个例子 text sn-p 吗?这不是你真正应该用正则表达式做的事情。

标签: regex xml notepad++ find-replace


【解决方案1】:

我在下面使用 notepad++ 正则表达式查找和替换似乎对我有用。记得选择正则表达式。 搜索下面的两个正则表达式并将其替换为空。虽然需要 2 个步骤,但还不完美

第一次替换删除所有不以警告

开头的行

第二次替换删除所有空行,只留下带有警告

的行
^(?!\s*?<warning>).*?$
^\s*

【讨论】:

  • Skycc,感谢您的帖子。我对其进行了测试,它删除了所有数据。它不会留下警告标签或警告标签内的文本。
  • 很高兴它解决了您的问题,您可以接受答案或投票有用的答案,还有一个复选框可以回答?
猜你喜欢
  • 2012-12-27
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 2019-08-01
相关资源
最近更新 更多