0

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

原来的:

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

我想要的正则表达式:

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

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

我怎样才能一次做到这一点?

4

2 回答 2

1

正如评论中已经指出的那样,Notepad++ 的正则表达式似乎不够强大,无法进行替换。一般来说,我认为裸正则表达式替换对于这个替换来说不够强大,你最多可以13/19/59/70/68/32进入一个捕获组,并通过其他方式对该字符串执行替换/,这就是为什么我可能会考虑使用另一个您精通的工具(perl、java 等)来代替。

使用记事本++,我会先进行普通替换,将所有出现的 to 更改'</MyTag>'</MyTag>,然后用这个正则表达式进行正则表达式替换:(\d+)/. 替换应该是 \1,. 单击全部替换应替换所有匹配项。

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

于 2013-02-11T16:33:52.837 回答
0

可以在一个正则表达式中完成。

搜索:

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

用。。。来代替:

,\1\3\4
于 2014-04-23T17:04:45.973 回答