regex - 希望正则表达式可以做到这一点。修复损坏的 XML

标签 regex notepad++

我现在想要解析一个大型 XML 文件。 XML 从根本上被破坏了,并且有超过 2000 行,我试图避免手动修复;)

我可以在 Notepad++ 中使用正则表达式替换来执行此操作吗?

<Sensor ID="21.1.1_L"/>

<Sensor ID="21.1.1_L">

在所有“传感器”标签中丢失标签右斜杠(并记住我不能简单地将/> 替换为 > 并且 ID 是可变的,包括它的长度,并且可能有也可能没有尾部下划线和 alpha)。

感谢您的任何建议。

最佳答案

这应该有效:搜索

(<Sensor [^<>]*)/>

并全部替换为

\1>

[^<>]*将匹配除尖括号之外的任意数量的字符(这是为了确保我们永远不能跨越标签的边界进行匹配)。然后,/>仅当当前标记以斜杠结尾时才匹配。

当然,您需要在 Notepad++ 中打开正则表达式匹配。

关于regex - 希望正则表达式可以做到这一点。修复损坏的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091060/

相关文章:

python - 当组之间存在随机字符串时匹配可选字符串

javascript - 将 id 中的冒号替换为\\:

mysql - 从 mysql 字段中的 json 中提取数据

html - 使用 RegEx 替换标签的内容

regex - Notepad++ 正则表达式结尾

regex - Tempered Greedy Token - 将点放在负前瞻之前有什么不同?

java - Spring Integration 不允许负面回顾

notepad++ - Notepad++ 删除空白行

javascript - 如何让我的文本区域自动设置文本格式

notepad++ - 如何使用 Notepad++ 自定义工具栏