修改正则以精准匹配含指定字符串的LineItem节点
批量移除XML中包含特定字符串的LineItem节点(VS Code)
操作步骤
开启正则匹配模式
打开VS Code的批量查找替换面板(快捷键Cmd+Shift+F),勾选右上角的.*正则图标,确保启用正则匹配;若需精确大小写匹配,同时勾选匹配大小写选项。使用精准正则表达式
在查找框中输入以下正则,仅匹配包含S00BBABHK的完整LineItem节点:
<LineItem[^>]*>(?:(?!<\/LineItem>).)*S00BBABHK(?:(?!<\/LineItem>).)*<\/LineItem>
正则逻辑说明
<LineItem[^>]*>:匹配LineItem的起始标签,[^>]*兼容标签内的任意属性(?:(?!<\/LineItem>).)*:非捕获组,确保仅在当前LineItem节点内匹配内容,不会提前触碰到结束标签S00BBABHK:指定需要匹配的目标字符串<\/LineItem>:匹配LineItem的结束标签
- 执行批量替换
替换框留空(直接删除匹配节点),点击查找面板右下角的替换所有文件按钮,选择目标文件夹即可完成批量处理。
注意事项
- 若XML存在LineItem节点嵌套的情况,该正则可能失效(单行无格式XML一般无嵌套场景)
- 建议先在单个文件使用
查找全部验证匹配结果,确认仅选中目标节点后再执行批量替换
内容的提问来源于stack exchange,提问作者Darin Murray
相关产品推荐
相关产品推荐

