正则表达式在Notepad ++中查找字符串直到字符串

时间:2017-08-02 19:47:24

标签: regex xml notepad++

我正试图找到一种在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"

哪个不起作用(没有找到),我不明白为什么。 感谢

1 个答案:

答案 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并以这种方式进行更改就会更轻松。)