Php 用于在函数调用中交换变量的正则表达式

Php 用于在函数调用中交换变量的正则表达式,php,regex,mysqli,Php,Regex,Mysqli,我正在升级我的PHP脚本以使用mysqli,这需要更改变量交换位置的数千行。例如: mysql_query($query, $db) 现在必须成为 mysqli_query($db, $query) 正则表达式是快速更改数千行的最佳方式吗?如果是这样,有人能帮我创建正则表达式来交换这些吗?我已经更改了mysqli的函数调用,但是函数参数交换超出了我的查找/替换技能 我正在使用Visual Studio 2015查找/替换。我认为它不需要正则表达式,因为它在沙箱中工作 打开每个文件并搜索mys

我正在升级我的PHP脚本以使用mysqli,这需要更改变量交换位置的数千行。例如:

mysql_query($query, $db)
现在必须成为

mysqli_query($db, $query)
正则表达式是快速更改数千行的最佳方式吗?如果是这样,有人能帮我创建正则表达式来交换这些吗?我已经更改了mysqli的函数调用,但是函数参数交换超出了我的查找/替换技能


我正在使用Visual Studio 2015查找/替换。

我认为它不需要正则表达式,因为它在沙箱中工作

打开每个文件并搜索mysql\u查询($query,$db) 每次遇到字符串时,请运行 str_replace('mysql_query($query,$db)','mysqli_query($db,$query)','mysql_query($query,$db)')


我认为它不需要正则表达式,它在沙箱中工作

打开每个文件并搜索mysql\u查询($query,$db) 每次遇到字符串时,请运行 str_replace('mysql_query($query,$db)','mysqli_query($db,$query)','mysql_query($query,$db)')

替换

mysql_query\s*\((\$\w+),\s*(\$\w+)\);
与:

正则表达式中的非转义括号将创建捕获组,替换中的
$1
$2
将拾取它们匹配的内容

这只适用于您发布的语句,其中查询是一个变量,因为
\$\w+
只匹配一个变量名。如果你有像这样的文字字符串,它将不起作用

mysql_query("SELECT ...", $db);
替换

mysql_query\s*\((\$\w+),\s*(\$\w+)\);
与:

正则表达式中的非转义括号将创建捕获组,替换中的
$1
$2
将拾取它们匹配的内容

这只适用于您发布的语句,其中查询是一个变量,因为
\$\w+
只匹配一个变量名。如果你有像这样的文字字符串,它将不起作用

mysql_query("SELECT ...", $db);

您的项目中有数千个查询执行???看到了吗。类似的东西应该可以在regexp中找到以下“mysql\u查询(\$(.+)\,\$(.+)”替换为“mysqli\u查询(\$$2\,\$\1)”。抱歉,这只是一个指针,不是答案。尤其是我不知道你用什么来查找和替换,这让它变得很难。例如。有时要替换您,请使用\1而不是$1。如果您在更改函数名之前这样做也会更容易。我没有创建项目,但我负责维护它。这是一个体育网站,查询大多遵循以下格式:
$GetStats=mysql\u query($query\u GetStats,$db)或die(mysqli\u error())我正在使用Visual Studio 2015查找/替换。您的项目中有数千个查询执行???看到了吗。类似的内容应该可以在regexp中找到以下“mysql\u查询(\$(.+)\,\$(.+)”)替换为“mysqli\u查询(\$$2\,\$\1)”。抱歉,这只是一个指针,不是答案。尤其是我不知道你用什么来查找和替换,这让它变得很难。例如。有时要替换您,请使用\1而不是$1。如果您在更改函数名之前这样做也会更容易。我没有创建项目,但我负责维护它。这是一个体育网站,查询大多遵循以下格式:
$GetStats=mysql\u query($query\u GetStats,$db)或die(mysqli\u error())
我正在使用Visual Studio 2015查找/替换。你认为他总是使用相同的变量
$query
?我总是使用$sql=“which I want”你认为他总是使用相同的变量
$query
?我总是使用$sql=“which I want”似乎找不到任何变量。完整语句通常如下所示,使用文本字符串的实例并不多:
$GetStats=mysqli\u query($query\u GetStats,$simhl)或die(mysqli\u error())您的正则表达式是否需要修改以查找/替换此案例?谢谢Barmar!为了适应我的情况,我做了一些小改动。正如您所说,它找不到“…”或$blah_布拉,但它帮了大忙。我不确定为什么它找不到
$blah_布拉
,因为
\w
匹配字母、数字和下划线。它似乎找不到。完整语句通常如下所示,使用文本字符串的实例并不多:
$GetStats=mysqli\u query($query\u GetStats,$simhl)或die(mysqli\u error())您的正则表达式是否需要修改以查找/替换此案例?谢谢Barmar!为了适应我的情况,我做了一些小改动。正如您所说,它找不到“…”或$blah_blah,但它帮了大忙。我不知道为什么它找不到
$blah_blah
,因为
\w
匹配字母、数字和下划线。