PHP - MySQLi替换为Regex / Regexp /正则表达式

时间:2011-10-08 19:51:36

标签: php regex mysqli

很抱歉,“让我为你辩护”-Question,但我找不到答案。

我想从数据库中的列中删除specfic元素。所以我用以下代码搜索它们:(它工作正常)

    $sql = "SELECT list_id, list_domains
            FROM list
            WHERE list_domains REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#'";
        $result = $db->prepare( $sql );
        $result->execute();
        $result->bind_result( $list_id, $list_domains );
        $result->store_result();

现在我想删除/替换这些列中找到的元素。所以我使用以下代码:

 $sql = "UPDATE list
        SET list_domains = REPLACE(list_domains, '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '')
        WHERE list_domains REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#'";
        $result = $db->prepare( $sql );
        $result->execute();
        $result->store_result();

不起作用。我也试过

REPLACE(list_domains, REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '') 

REGEXP_REPLACE(list_domains, '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '') 

但这些行只会产生错误。

如何使用MySQLi删除/替换特定的正则表达式?

感谢您的每一个建议!

1 个答案:

答案 0 :(得分:1)

REPLACE()不允许正则表达式搜索。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

如果你想用正则表达式操纵字符串,SELECT行,在你自己的代码中进行操作,然后发出UPDATE语句来更新值,指定最终值。