如何在PHP项目中执行大量复杂的字符串替换?

时间:2012-10-19 10:15:37

标签: php regex eclipse string

我猜“在文件树中”就足够了,但这是我的情况。

我有一个任务来替换

的所有实例

some_function('string_parameter'.$some_optional_var.');

some_function().'string_parameter'.$some_optional_var.';在PHP项目中。

在调用函数的任何地方,参数都可以不同。

我很确定我可以使用正则表达式或类似的东西,但正则表达式不是我的力量......

如果有帮助,我正在使用Eclipse Indigo。谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个在Eclipse搜索和替换中适用于我的解决方案。

搜索:

some_function\(([^)]+)\)

替换:

some_function().$1

(这会将调用内容放在some_function之后,无论内容是什么。如果这不够具体,您需要准确描述{{1}的案例类型你需要处理。)

显然,您需要打开正则表达式选项。

<强>解释

some_function匹配该确切文字。

some_function因为括号是正则表达式中的特殊字符,所以需要反斜杠来转义它们以便我们匹配实际的括号。

\( ... \)内括号创建一个捕获组来记录正则表达式的这部分匹配。

(...)匹配一个或多个不是括号的字符的字符类([^)]+否定字符类; ^要求至少有一个字符,并匹配为尽可能多。

替换中的

+ - 插入上面括号中捕获的值。您可以使用不同的括号组捕获许多不同的内容,它们将进入$1$1$2等。