用SED替换所有出现的PHP函数名

用SED替换所有出现的PHP函数名,php,regex,sed,find,Php,Regex,Sed,Find,我有一个PHP文件,其中有多个函数调用my_function(),我想用blah_blah()替换它,只需在任何地方重命名函数名即可。我还有另一个我的函数(),我不想被替换 在这里,我创建了正则表达式: [^\w\*]my_function\( 这意味着前缀应该是一些特殊字符,而不是以圆括号开头的函数名。我将其替换到文件夹中,因此我们开始: find my_folder_name -type f -exec sed -i 's/[^\w\*]my_function(/blah_blah(/g'

我有一个PHP文件,其中有多个函数调用
my_function()
,我想用
blah_blah()
替换它,只需在任何地方重命名函数名即可。我还有另一个
我的函数()
,我不想被替换

在这里,我创建了正则表达式:

[^\w\*]my_function\(
这意味着前缀应该是一些特殊字符,而不是以圆括号开头的函数名。我将其替换到文件夹中,因此我们开始:

find my_folder_name -type f -exec sed -i 's/[^\w\*]my_function(/blah_blah(/g' {} \;
圆括号不是sed的特殊字符,所以我们不需要逃避它。 问题是,我相信您已经注意到,它将替换函数名,包括前缀符号
[^\w\*]


如何仅替换函数名?

这是正确的解决方案,多亏了Marc B

find my_folder_name -type f -exec sed -i 's/\bmy_function(/blah_blah(/g' {} \;

这是正确的解决方案,感谢Marc B

find my_folder_name -type f -exec sed -i 's/\bmy_function(/blah_blah(/g' {} \;

\b
改为单词边界?完整代码是什么?
\b
改为单词边界?完整代码是什么?