搜索 / 并将其替换为 ;在带有 sublime text 3 的 xml 标签中
Search / and replace it with ; in xml tag with sublime text 3
我正在处理带有此标签的 .xml 文件
<Categories><![CDATA[Test/Test1-Test2-Test3|Test4/Test5-Test6|Test7/Test8]]></Categories>
我正在尝试通过在 Sublime Text 3.
中使用正则表达式将 /
替换为 ;
输出应该是
<Categories><![CDATA[Test;Test1-Test2-Test3|Test4;Test5-Test6|Test7;Test8]]></Categories>
当我使用这个 (<Categories>\S+)\/(.+</Categories>)
时,它匹配所有行,当然如果我使用这个 \/
它匹配 .xml 文件中所有地方的所有 /
。
你能帮忙吗?
对于您的示例字符串,您可以使用 \G
断言上一个匹配项结束时的位置,并使用 \K
忘记已经匹配的内容,然后匹配一个正斜杠。
在替换中使用 ;
使用正面前瞻断言右边的是 ]]></Categories>
(?:<Categories><!\[CDATA\[|\G(?!^))[^/]*\K/(?=[^][]*]]></Categories>)
说明
(?:
非捕获组
<Categories><!\[CDATA\[
匹配 <Categories><![CDATA[
|
或
\G(?!^)
断言上一场比赛结束时的位置,而不是开始
)
关闭非捕获组
[^/]*
匹配 0+ 次不 /
使用否定字符 class
\K/
忘记匹配了什么,再匹配/
(?=
正向前瞻,断言右边的是
[^][]*]]></Categories>
匹配0+次不是[
或]
,然后匹配]]></Categories>
)
关闭正面前瞻
我正在处理带有此标签的 .xml 文件
<Categories><![CDATA[Test/Test1-Test2-Test3|Test4/Test5-Test6|Test7/Test8]]></Categories>
我正在尝试通过在 Sublime Text 3.
中使用正则表达式将/
替换为 ;
输出应该是
<Categories><![CDATA[Test;Test1-Test2-Test3|Test4;Test5-Test6|Test7;Test8]]></Categories>
当我使用这个 (<Categories>\S+)\/(.+</Categories>)
时,它匹配所有行,当然如果我使用这个 \/
它匹配 .xml 文件中所有地方的所有 /
。
你能帮忙吗?
对于您的示例字符串,您可以使用 \G
断言上一个匹配项结束时的位置,并使用 \K
忘记已经匹配的内容,然后匹配一个正斜杠。
在替换中使用 ;
使用正面前瞻断言右边的是 ]]></Categories>
(?:<Categories><!\[CDATA\[|\G(?!^))[^/]*\K/(?=[^][]*]]></Categories>)
说明
(?:
非捕获组<Categories><!\[CDATA\[
匹配<Categories><![CDATA[
|
或\G(?!^)
断言上一场比赛结束时的位置,而不是开始
)
关闭非捕获组[^/]*
匹配 0+ 次不/
使用否定字符 class\K/
忘记匹配了什么,再匹配/
(?=
正向前瞻,断言右边的是[^][]*]]></Categories>
匹配0+次不是[
或]
,然后匹配]]></Categories>
)
关闭正面前瞻