【问题标题】:How to escape special characters using Mongo regex in PHP format如何使用 PHP 格式的 Mongo 正则表达式转义特殊字符
【发布时间】:2015-01-15 11:10:41
【问题描述】:

我尝试了下面的代码行来获取使用 PHP 格式的 Mongo 正则表达式匹配酒店名称的结果。但我不知道如何转义特殊字符:

$filter_array = array_merge($filter_array,
array('name' => array('$regex' => new MongoRegex("/".$hotel_name."/i"))));

通过这个我得到匹配酒店的输出,但如果假设酒店名称类似于“ABC(3 星)”,则无法获得此类酒店的结果,因为该酒店名称具有特殊字符“(”和“ )”。

如何转义酒店名称中的这种特殊字符?

【问题讨论】:

    标签: php regex mongodb


    【解决方案1】:

    它似乎使用了 PCRE 风格的表达式,在这种情况下使用preg_quote

    new MongoRegex("/".preg_quote($hotel_name, '/')."/i")
    

    【讨论】:

    • 但我需要转义酒店名称中的“(”和“)”=“ABC(3星)”
    • @pihu 它会这样做
    • @pihu 不仅会转义(),还会转义其他特殊字符,再加上/,通过使用它作为分隔符变得特别。
    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2012-04-18
    相关资源
    最近更新 更多