我想,以取代与假设XYZ标签的XML文件中的所有名称。 换句话说,更换标签之间的所有内容(包括空格)。 我究竟做错了什么?
Search: (<name>)(.*)(</name>)
Replace: \1xyz\3
我想,以取代与假设XYZ标签的XML文件中的所有名称。 换句话说,更换标签之间的所有内容(包括空格)。 我究竟做错了什么?
Search: (<name>)(.*)(</name>)
Replace: \1xyz\3
您正在尝试用正则表达式解析XML 。
但是,你反正做什么错用贪婪的重复。 这将从第一大老远跑到<name>
到最后</name>
(即使他们不属于一起),因为.*
将尝试使用尽可能多的同时仍然满足匹配条件..使用这个来代替:
Search: (<name>).*?(</name>)
Replace: \1xyz\2
还是要安全起见,您还可以逃避<
和>
,因为它们是在某些特定情况下(而不是在这一个虽然)元字符:
Search: (\<name\>).*?(\</name\>)
Replace: \1xyz\2
在这两种情况下,这使得.*
ungreedy,也就是说它会尽可能少地消耗。
并确保您升级到记事本+ + 6,因为在此之前有使用记事本++的正则表达式引擎的几个问题。
最后,作为hoombar在评论中指出.
默认情况下, 除换行符每一个字符相匹配。 在Notepadd ++,你可以通过选中更改此行为. matches newline
. matches newline
复选框。