【发布时间】:2015-10-27 03:23:00
【问题描述】:
我有一个 PHP 文件,其中多次调用函数 my_function(),我想用 blah_blah() 替换它,只需在各处重命名函数名称即可。我也有another_my_function(),我不想被替换。
这里我创建了正则表达式:
[^\w\*]my_function\(
这意味着前缀应该是一些特殊字符,而不是带有起始圆括号的函数名。我将它替换到一个文件夹中,所以我们开始吧:
find my_folder_name -type f -exec sed -i 's/[^\w\*]my_function(/blah_blah(/g' {} \;
圆括号不是 sed 的特殊字符,所以我们不需要转义它。
问题是,你肯定注意到了,它会替换包含前缀符号[^\w\*] 的函数名。
如何只替换函数名?
【问题讨论】:
-
\b代替,用于单词边界? -
完整代码是什么?