如何根据Notepad ++中的前一行替换所有行?

时间:2017-02-01 19:09:03

标签: regex xml replace notepad++

我有一个XML代码:

<Line1>Matched_text Other_text</Line1>
<Line2>Text_to_replace</Line2>

如何告诉Notepad ++查找Matched_text并将Text_to_replace替换为Replaced_text?有几个类似的代码块,其中一个完全Matched _text,不同Other_textText_to_replace。我想一次性更换所有。

我的想法是

Matched_text*<Line2>*</Line2>
<查找字段中的

Matched_text*<Line2>Replaced_text</Line2>    
<替换字段中的

。我知道正则表达式中的\1可能有用,但我不知道从哪里开始。

实际代码是:

<Name>Matched_text, Other_text</Name>
<IsBillable>false</IsBillable>
<Color>-Text_to_replace</Color>

1 个答案:

答案 0 :(得分:2)

您正在寻找的正则表达式如下所示。

查找:(Matched_text[\w,\s<>\/]*<Color>-).*(</Color>)

替换:\1Replaced_text\2

细分:

`()` is how you tell regex that you want to keep things (for use in /1, /2, etc.), these are called capture groups in regex land.

`Matched_text[\w,\s<>\/]*` means you want your anchor `Matched_text` and everything after it up till the next part of the expression.

`<Color>-).*(</Color>)` Select everything between <Color>- and </Color> for replacement.

如果您对表达方式有任何疑问,我强烈建议您查看regex cheatsheet

Make your NPP Find/Replace look like this