我有一个很大的 XML 文件,我应该修改一个标签。
原来的:
<MyTag>13/19/59/70/68/32'</MyTag>'
我想要的正则表达式:
<MyTag>13,19,59,70,68,32</MyTag>
如果我每次都得到相同数量的数字,但我可以有 8 个数字或 5 个或 6 个或更少,那可能会很容易。
我怎样才能一次做到这一点?
正如评论中已经指出的那样,Notepad++ 的正则表达式似乎不够强大,无法进行替换。一般来说,我认为裸正则表达式替换对于这个替换来说不够强大,你最多可以13/19/59/70/68/32
进入一个捕获组,并通过其他方式对该字符串执行替换/
。,
这就是为什么我可能会考虑使用另一个您精通的工具(perl、java 等)来代替。
使用记事本++,我会先进行普通替换,将所有出现的 to 更改'</MyTag>'
为</MyTag>
,然后用这个正则表达式进行正则表达式替换:(\d+)/
. 替换应该是 \1,
. 单击全部替换应替换所有匹配项。
如果您想避免替换/
其他标签中由分隔的数字,也许您可以使用此正则表达式<MyTag>(.*)(\d+)/(.*)</MyTag>
并将其替换为<MyTag>\1\2,\3</MyTag>
. 此替换必须执行 N 次,因此如果您想使用它,您可能会对录制宏或类似内容感兴趣。
可以在一个正则表达式中完成。
搜索:
/([0-9]+)('(<){1}/(MyTag>){1}')?
用。。。来代替:
,\1\3\4