正则表达式搜索和条件替换:在Notepad ++中工作,在Powergrep中不起作用?

时间:2016-06-21 10:52:36

标签: regex notepad++ powergrep

我在Notepad ++中使用这个正则表达式来搜索和替换多个单词。

(good)|(great)|(fine)

(?1bad)(?2worse)(?3not)

问题是,它在Powergrep中不起作用,有什么方法可以改变它吗? 问题是,Notepad ++限制了lengh或正则表达式,并且Powergrep没有,它还支持正则表达式列表。

1 个答案:

答案 0 :(得分:2)

PowerGREP manual中,从未提及条件替换。我建议你一个通用的方法,解决 N 搜索&仅用3个步骤替换整体(显然,如果您只有3个单词可以替换,您可以先逐个替换它们):

第一步(添加标记)

(F_1)|(F_2)|(F_3)|...|(F_n)

{\1[R_1]}{\2[R_2]}{\3[R_3]}...{\n[R_n]}

其中(F_1, ..., F_n)分别是用(R_1, ..., R_n)替换的字词(或正则表达式)。

在你的例子中:

(good)|(great)|(fine)

{\1[bad]}{\2[worse]}{\3[not]}

第二步(保持良好)

\{[^\[\]\{\}]+\[([^\[\]\{\}]*)\]\}

\1

第三步(删除邪恶)

\{\[[^\[\]\{\}]*\]\}

null

如果您正在使用已经包含使用卷曲和方形的方块并且您不想犯错误的单词,您可以使用其他标记(尖括号,三重顶点等等)。< / p>