如何以?
的形式获得带有正则表达式的查询$data = "select * from table where id=5 AND ( round(data) = 2 ) AND ( round(data) = 5 ) AND FIND_IN_SET('159',data)";
$data = preg_replace("/AND ( round(data) = \d+ )/", "", $data);
$data = preg_replace("/AND FIND_IN_SET('\d+',data)/", "", $data);
输出:
select * from table where id=5
答案 0 :(得分:1)
以下是您的代码的工作版本:
$data = "select * from table where id=5 AND ( round(data) = 2 ) AND ( round(data) = 5 ) AND FIND_IN_SET('159',data)";
$data = preg_replace("/AND \( round\(data\) = \d+ \)/", "", $data);
$data = preg_replace("/AND FIND_IN_SET\('\d+',data\)/", "", $data);
由于您忘记在\
和(
之前放置)
,因此无法正常工作。来自PHP文档:http://php.net/manual/en/function.preg-replace.php
PHP将(
和)
视为blocks
进行匹配。