删除帖子preg_replace上的所需条目

时间:2018-04-01 19:33:07

标签: php mysql sql

如何以?

的形式获得带有正则表达式的查询
$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

1 个答案:

答案 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进行匹配。