如何编写正则表达式提取XML的NODE2标签内的所有独立单词
适配VSCode搜索替换的正则解决方案
搜索正则
直接使用如下正则开启全局匹配即可逐个捕获NODE2标签内的所有独立单词:
(?:<NODE2>|\G(?!^))\s*(\S+)(?=[^<]*</NODE2>)
正则逻辑说明
- 开头的
(?:<NODE2>|\G(?!^))非捕获组限定匹配起点:要么刚匹配到<NODE2>标签,要么是上一次单词匹配结束的位置,避免匹配到其他节点内的内容 \s*兼容单词之间任意数量的空格- 捕获组
(\S+)对应你要提取的B1、B2、B3、B4这类独立单词 - 末尾的
(?=[^<]*</NODE2>)正向预查保证匹配范围严格限制在NODE2闭合标签之前,结合你提到的节点值无尖括号的前提,不会出现匹配越界问题
替换使用方法
如果你需要修改NODE2内的内容格式,替换框内直接用$1指代每个捕获到的单词即可。比如要把每个单词用<W></W>标签包裹,替换框输入<W>$1</W>即可批量完成格式更新。
内容的提问来源于stack exchange,提问作者rgvlee
相关产品推荐
相关产品推荐

