PHP中有一个不推荐使用的函数,因此我需要用替换函数替换所有函数。由于某些参数具有不同的值,因此我需要使用正则表达式查找和替换方法来执行此操作。
例如,我有两个功能:
mysql_result($one,0,"val1")
mysql_result($two,0,"val2")
如何编写正则表达式将这两者转换为那些?
$one["val1"]
$two["val2"]
目前我有(mysql_result\()*\"\)
但这只匹配函数的结尾部分。
答案 0 :(得分:3)
您可以使用此模式,然后使用$1["$2"]
:
.*?\(([^,]+).*?"([^"]+).*
修改强>
$string = array('mysql_result($one,0,"val1")', 'mysql_result($two,0,"val2")');
$pattern = '/.*?\(([^,]+).*?"([^"]+).*/';
print_r( preg_replace($pattern, '$1["$2"]', $string ));
答案 1 :(得分:1)
preg_replace('/mysql_result\(([^,]*),[^,]*,([^)]*)\)/', '$1[$2]', $string);
答案 2 :(得分:0)
使用以下regexRegEx:(mysql_result\()(.*),(.*),(.*)(\))
并将其替换为以下内容:\2[\4]