捕获文本的某些不同部分并替换为另一部分

时间:2013-11-26 20:39:27

标签: regex

PHP中有一个不推荐使用的函数,因此我需要用替换函数替换所有函数。由于某些参数具有不同的值,因此我需要使用正则表达式查找和替换方法来执行此操作。

例如,我有两个功能:

mysql_result($one,0,"val1")
mysql_result($two,0,"val2")

如何编写正则表达式将这两者转换为那些?

$one["val1"]
$two["val2"]

目前我有(mysql_result\()*\"\)但这只匹配函数的结尾部分。

3 个答案:

答案 0 :(得分:3)

您可以使用此模式,然后使用$1["$2"]

替换
.*?\(([^,]+).*?"([^"]+).*

Live DEMO

修改

$string = array('mysql_result($one,0,"val1")', 'mysql_result($two,0,"val2")');

$pattern = '/.*?\(([^,]+).*?"([^"]+).*/';

print_r( preg_replace($pattern, '$1["$2"]', $string ));

Working DEMO

答案 1 :(得分:1)

preg_replace('/mysql_result\(([^,]*),[^,]*,([^)]*)\)/', '$1[$2]', $string);

答案 2 :(得分:0)

使用以下regexRegEx:(mysql_result\()(.*),(.*),(.*)(\))
并将其替换为以下内容:\2[\4]