我正试图找到一种在Notepad ++中查找和替换的方法,我无法弄清楚如何使用允许我这样做的正则表达式。我需要找到所有
<Element
Attribute1="<!--Any one letter-->34_<!--Anything-->"
<!--Multiple Attributes on multiple lines-->
<!--Until-->
AttributeToMatch="Value"
<!--Multiple Attributes on multiple lines--> />
我想要以下内容:
<Element
Attribute1="<!--Any one letter-->34_<!--Anything-->"
<!--Multiple Attributes on multiple lines-->
<!--Until-->
AttributeToMatch="NewValue"
<!--Multiple Attributes on multiple lines--> />
我需要能够将“SpecificValue”替换为数百个元素的另一个值,所以我想找到一种更快速有效的方法,然后手动完成。
到目前为止,我提出了:
Attribute1="[A-Z]{1}34_.*(\r|\n)(\s)*.*(\r|\n)(\s)AttributeToMatch="SpecificValue"
哪个不起作用(没有找到),我不明白为什么。 感谢
答案 0 :(得分:0)
好吧,我还没有特别在Notepad ++中尝试这个,但是试一试。
/\<Element[\S\s]*Attribute1\=\".*34_.*\"[\S\s]*AttributeToMatch\=\"([^\"]*)\"[\S\s]*\/\>[\S\s]*(?=\<Element)/igm
igm
只是表示它应该不区分大小写,全局和多行。可能会为Notepad ++关闭它。
您还需要能够使用新值替换捕获组$ 1。同样,我不确定它在Notepad ++中是如何工作的。
[\S\s]*
组匹配任何内容,包括换行符。
最后,它避免了使用<Element
的预测一次捕获多个元素。如果Notepad ++支持它,它也可以匹配文件的结尾,或者添加假的
(我的直觉仍然是你只需要解析XML并以这种方式进行更改就会更轻松。)