如何在php中通过正则表达式查找PDO查询中的参数?

How to find parameters in PDO query by regular expression in php?

我有一个 sql 查询如下:

select * from tbl_test where id=:id and name=:name

现在我想从上面的字符串中提取所有变量。出于这个原因,我想在 php 中使用 preg_match() 函数。但是我不知道那个正则表达式怎么写

谁能帮我解决这个问题?

使用匹配=

前后字符串的模式/(\w+)=(:\w+)/
$str = "select * from tbl_test where id=:id and name=:name";
preg_match_all("/(\w+)=(:\w+)/", $str, $m);
print_r($m[2]);

输出

Array
(
    [0] => :id
    [1] => :name
)

您也可以使用 array_combine() 创建 key/value 数组

$arr = array_combine($m[1], $m[2]);
print_r($arr);

输出

Array
(
    [id] => :id
    [name] => :name
)

检查结果 demo