问题描述
我有一个包含标签的xml文件。我想从包含内部<value>
标记的文件中删除所有<isActive>
标记。我正在使用正则表达式尝试在Notepad ++中查找并替换它。
我创建了此正则表达式,无法继续进行操作。
<value>.*?</value>
下面是示例xml文件`
<value>
<fullName>CMT - AAPAC - ANZ - Telstra - Media</fullName>
<default>false</default>
<label>CMT - AAPAC - ANZ - Telstra - Media</label>
</value>
<value>
<fullName>CMT - AAPAC - ASEAN - C&M - Comms</fullName>
<default>false</default>
<isActive>false</isActive>
<label>CMT - AAPAC - ASEAN - C&M - Comms</label>
</value>
<value>
<fullName>CMT - AAPAC - ANZ - Telstra - Media</fullName>
<default>false</default>
<label>CMT - AAPAC - ANZ - Telstra - Media</label>
</value>
解决方法
您可以使用
FindWhat :(?s)<value>(?:(?!<value>).)*?<isActive>.*?</value>
替换为 :(空字符串)
请参见regex demo online。详细信息:
-
(?s)
-.
匹配换行符模式 -
<value>
-字符串 -
(?:(?!<value>).)*?
-任何不以value
子字符串开头的字符,零个或多个出现,但尽可能少 -
<isActive>
-字符串 -
.*?
-零个或多个字符,尽可能少 -
</value>
-一个字符串。
查看演示和设置: