正则表达式与括号不匹配

我正在使用 Doctrine MongoDB,我在查询生成器中有以下代码:

$regexSeller = new Regex('^'.$search['seller'], 'i');
$raw->addOr($builder->matchExpr()->field('seller')->equals($regexSeller));

它的工作原理是,通过像这样的“鲍勃”这样的搜索找到好的结果,但是当有像“鲍勃(来自芝加哥)”这样的括号时,它就不起作用了。

我想问题出在第一行,但也找不到与括号匹配的方法。


守着星空守着你
浏览 81回答 1
1回答

MMMHUHU

您必须对查询的特殊字符进行转义。例如,将 替换为 和 。(\()\)在 PHP 中,您可以使用 (https://www.php.net/manual/en/function.preg-quote.php),如下所示:preg_quote$regexSeller = new Regex('^'.preg_quote($search['seller']), 'i');让我知道它是否有效!;)
打开App,查看更多内容
随时随地看视频慕课网APP