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

如何在php中通过正则表达式查找PDO查询中的参数?,php,regex,string,preg-match,Php,Regex,String,Preg Match,我有一个sql查询,如下所示: select * from tbl_test where id=:id and name=:name 现在我想从上面的字符串中提取所有变量。因此,我想在php中使用preg\u match()函数。但我不知道怎样写那个常规的表达 有人能帮我解决这个问题吗?使用模式/(\w+)=(:\w+/,在=前后匹配字符串 $str = "select * from tbl_test where id=:id and name=:name"; preg_match_all("

我有一个sql查询,如下所示:

select * from tbl_test where id=:id and name=:name
现在我想从上面的字符串中提取所有变量。因此,我想在php中使用
preg\u 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
(
    [id] => :id
    [name] => :name
)
您还可以使用
array\u combine()
创建键/值数组

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

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

检查

中的结果查询中没有变量。你想要占位符吗<代码>:\w+应该为您做这件事,我想()考虑:查询中的变量作为变量。我想找到所有的:id和:name。如果正则表达式应该这样做……你试过了吗?