正则表达式替换问题:使用组

时间:2013-09-17 09:52:36

标签: regex ultraedit

我需要通过if (ereg("avion","$keyw"))

替换数百个if (preg_match("@avion@","$keyw")) {

我试过了:

1st:ereg\("(.*)"

第二名:preg_match\("@$1@"

但它用'$ 1'取代了第一组...请问有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用sed您可以尝试这种方式:

sed -i".bak" 's/(ereg("\([a-z]*\)","\$keyw"))/\(preg_match\("@\1@","$keyw"\)\)/' filename

编辑:更新以匹配任何单词,而不仅仅是'avion'

答案 1 :(得分:0)

这适用于我的UltraEdit版本:

enter image description here

我只是不确定你为什么要替换@

您可以为所有人选择“当前文件”,而不是我用于比较的“选定文本”。

另外需要注意的是,使用它可能更安全:

ereg\("(.*?)",

替换:

preg_match("@$1@",