繁体   English   中英

记事本++正则表达式替换

[英]Notepad ++ Regular Expression Replacement

我有一个很大的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等)代替的原因。

使用notepad ++,我将首先进行常规替换,将所有出现的'</MyTag>'更改为</MyTag> ,然后使用此正则表达式(\\d+)/进行正则表达式替换。 替换应为\\1, 单击全部替换应替换所有出现的内容。

如果要避免替换其他标签中用/分隔的数字,则可以使用此正则表达式<MyTag>(.*)(\\d+)/(.*)</MyTag>并将其替换为<MyTag>\\1\\2,\\3</MyTag> 该替换将必须执行N次,因此,如果您想使用它,可能会对录制宏或类似内容感兴趣。

一个REGEXP即可完成。

搜索:

/([0-9]+)('(<){1}/(MyTag>){1}')?

用。。。来代替:

,\1\3\4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM