regex — заменить все вхождения имени функции PHP на SED

У меня есть файл 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\*],

Как я могу заменить только название функции?

1

Решение

Вот правильное решение, благодаря Marc B!

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]