用SED替换所有出现的PHP函数名
我有一个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'
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
改为单词边界?完整代码是什么?