我有一个很大的XML文件,我应该修改一个标签。
原件:
<MyTag>13/19/59/70/68/32'</MyTag>'
我想用正则表达式:
<MyTag>13,19,59,70,68,32</MyTag>
如果我每次都得到相同数量的数字,那么这可能很容易,但我可以有8个数字或5个或6个或更少。
我怎么能一次做到这一点?
答案 0 :(得分:1)
正如评论中已经指出的那样,Notepad ++的正则表达式似乎不足以使其取代。一般情况下,我认为裸替换正则替换功能不足以进行此替换,您最多可以在捕获组中获得13/19/59/70/68/32
,并执行/
到,
替换通过其他方式在该字符串上。这就是为什么我可能会考虑使用另一种你精通的工具(perl,java,等等)。
使用notepad ++,我首先进行正常替换,将所有出现的'</MyTag>'
更改为</MyTag>
,然后使用此正则表达式替换正则表达式:(\d+)/
。替换应为\1,
。单击替换所有应替换所有出现的内容。
如果您想避免在其他代码中替换/
分隔的数字,则可以使用此正则表达式<MyTag>(.*)(\d+)/(.*)</MyTag>
并将其替换为<MyTag>\1\2,\3</MyTag>
。此替换必须执行N次,因此如果您想使用它,您可能有兴趣录制宏或类似内容。
答案 1 :(得分:0)
在一个REGEXP中可能会这样做。
搜索:
/([0-9]+)('(<){1}/(MyTag>){1}')?
替换为:
,\1\3\4