如何用Notepad++去除XML重复块(保留首次出现项)
用Notepad++正则去除重复XML块(基于的data属性)
你可以通过Notepad++的PCRE正则表达式实现需求,核心是匹配并删除非首次出现的、带有相同data属性值的<mms>块,具体操作如下:
操作步骤
- 打开目标XML文件,按
Ctrl+H调出替换窗口 - 在「查找模式」中选择正则表达式,并勾选「.匹配换行符」选项
- 填入以下正则规则:
- 查找内容:
(?s)(?<=.*<part[^>]*data="([^"]+)".*?)(<mms[^>]*>.*?<part[^>]*data="\1".*?</mms>) - 替换为:(留空)
- 查找内容:
- 点击「全部替换」,即可保留每个
data属性值对应的首次<mms>块,删除后续重复项
正则说明
(?s):开启单行模式,让.匹配换行符,确保能匹配多行的XML块(?<=.*<part[^>]*data="([^"]+)".*?):正向回顾断言,检查当前位置之前已经出现过带有相同data值的<part>标签(<mms[^>]*>.*?<part[^>]*data="\1".*?</mms>):捕获后续出现的、带有相同data值的完整<mms>块,替换为空即可删除重复项
注意事项
- 确保XML结构规范,每个
<mms>块仅包含一个<part>标签(若有多个<part>,需调整正则逻辑) - 大型XML文件操作前请务必备份,避免意外数据丢失
- 若
data属性值包含特殊字符(如转义引号),需微调正则适配
内容的提问来源于stack exchange,提问作者user20446145
相关产品推荐
相关产品推荐

