我正在使用 Doctrine MongoDB,并且在查询构建器中有以下代码:
$regexSeller = new Regex('^'.$search['seller'], 'i');
$raw->addOr($builder->matchExpr()->field('seller')->equals($regexSeller));
它可以通过像“Bob”这样的搜索找到好的结果,但是当有像“Bob(来自芝加哥)”这样的括号时不起作用。
我想问题出在第一行,但也找不到与括号匹配的方法。
您必须转义查询的特殊字符。例如,更换(
与\(
和)
用\)
。
在 PHP 中,您可以使用preg_quote
(https://www.php.net/manual/en/function.preg-quote.php),如下所示:
$regexSeller = new Regex('^'.preg_quote($search['seller']), 'i');
让我知道它是否有效!;)
谢谢!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句