3

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

(good)|(great)|(fine)

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

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

4

1 回答 1

2

PowerGREP 手册中,从未提及用条件替换。我建议您采用一种通用的方法,总体上只需 3 个步骤即可解决N次搜索和替换问题(显然,如果您只有 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)分别用 terms 替换的单词(或正则表达式)在哪里(R_1, ..., R_n)

在您的示例中:

(good)|(great)|(fine)

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

第二步(保持良好)

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

\1

第三步(除恶)

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

null

如果您正在使用的单词已经包含使用大括号和方括号并且您不想犯错误,则可以使用其他标记(尖括号、三重顶点等)。

于 2016-07-13T17:59:28.270 回答