Notepad ++正则表达式替换

时间:2013-02-11 15:22:55

标签: regex notepad++

我有一个很大的XML文件,我应该修改一个标签。

原件:

<MyTag>13/19/59/70/68/32'</MyTag>'

我想用正则表达式:

<MyTag>13,19,59,70,68,32</MyTag>

如果我每次都得到相同数量的数字,那么这可能很容易,但我可以有8个数字或5个或6个或更少。

我怎么能一次做到这一点?

2 个答案:

答案 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