正则表达式替换查询

时间:2013-07-18 22:17:37

标签: php mysql regex

有人可以为我提供一个正则表达式FOR NOTEPAD ++来替换这个查询:

mysql_query($query, $db);

替换为:

$mysqli->query($query)

但是$ query也可以有另一个变量名,例如$ query_2,所以输出应该是

$mysqli->query($query2)

谢谢!

2 个答案:

答案 0 :(得分:3)

适用于Notepad ++ 6.3.2。这可以解决可能使用的空间和制表符不一致的任何问题。

搜索模式

mysql_query\(\s*\$([^,\s]+)\s*,\s*\$db\s*\);

<强>替换

\$mysqli->query\(\$\1\);

(确保在替换对话框中选择正则表达式单选按钮)。

测试文字

mysql_query($query, $db);
mysql_query($SQL , $db);
mysql_query($query2,    $db);
mysql_query( $SQL_v4, $db );
mysql_query($AnotherSQL,$db);

输出文字

$mysqli->query($query);
$mysqli->query($SQL);
$mysqli->query($query2);
$mysqli->query($SQL_v4);
$mysqli->query($AnotherSQL);

答案 1 :(得分:1)

$input = 'mysql_query($asdf, $db);';
$input = preg_replace('/mysql_query\(\$(\w+), \$db\);/','\$mysqli->query(\$$1);',$input);
echo $input;

输出$mysqli->query($asdf);

修改

在Notepad ++上,试试这个:

  1. 查找内容:mysql_query\(\$(\w+), *\$db\);

  2. 替换为:\$mysqli->query\(\$$1\);