如何用正则移除分组内换行,修复拆分的XML结束标签
修复被换行拆分的XML结束标签
直接用正则匹配被拆分的结束标签片段,移除中间的换行(或空白)并合并即可,以下是具体实现:
核心思路
匹配</开头、被换行(或空白)拆分、以>结尾的不完整结束标签,将拆分部分拼接起来,去掉中间的分隔空白。
正则表达式与替换规则
正则:(</[^>]*)\s+([^>]*>)
替换为:$1$2(不同语言里捕获组引用可能用\1\2,比如Python)
- 正则说明:
(</[^>]*):捕获</开头到空白前的标签片段\s+:匹配任意数量的空白(包括换行、空格、制表符)([^>]*)>:捕获空白后到>的剩余标签片段
代码示例(Python)
import re # 带有拆分标签的XML文本 broken_xml = """ <gcusfvalue>测试内容</gc usfvalue> <gcrundesc>描述文本</gc rundesc> """ # 修复拆分的标签 fixed_xml = re.sub(r'(</[^>]*)\s+([^>]*>)', r'\1\2', broken_xml) print(fixed_xml)
运行后输出的XML会把拆分的</gc+换行+usfvalue>合并为</gcusfvalue>,</gc+换行+rundesc>合并为</gcrundesc>。
其他语言适配
比如JavaScript中可以这样写:
const brokenXml = ` <gcusfvalue>测试内容</gc usfvalue> <gcrundesc>描述文本</gc rundesc> `; const fixedXml = brokenXml.replace(/(<\/[^>]*)\s+([^>]*>)/g, '$1$2'); console.log(fixedXml);
内容的提问来源于stack exchange,提问作者italo_pm
相关产品推荐
相关产品推荐

