我正在尝试在记事本中编写一个正则表达式,它将所有空格包含在2个标记之间,并用逗号替换它们 .
所以基本上,如果我有这个输入:
<foo>bar bar bar</foo>
<tag>bar bar bar</tag>
我想只在foo标签内替换空格来获得一个resut:
<foo>bar,bar,bar</foo>
<tag>bar bar bar</tag>
匹配foo之间的所有内容相当简单:
(?<=(<foo>))(.*)(?=(<\/foo>))
但是搜索\ s不起作用:
(?<=(<foo>))(\s)(?=(<\/foo>))
1 回答
由于您要替换没有子项的标记内的空格,也不想替换相同的嵌套标记,您可以使用
请参阅regex demo,替换为
,
.Details :
(?:\G(?!^)|<foo>)
- 上一次成功比赛结束或<foo>
[^\s<]*
- 除空白之外的零个或多个符号和<
\K
- 省略到目前为止匹配的文本\s+
- 一个或多个空格 .