正则表达式与括号不匹配

Regex doesn't match with parentheses

我正在使用 Doctrine MongoDB 并且我在查询构建器中有以下代码:

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

它可以工作并通过这样的搜索找到好的结果 "Bob" 但是当有像 "Bob (from Chicago)".

这样的括号时不起作用

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

您必须转义查询中的特殊字符。例如。将 ( 替换为 \(,将 ) 替换为 \)

在PHP中你可以使用preg_quote(https://www.php.net/manual/en/function.preg-quote.php),像这样:

$regexSeller = new Regex('^'.preg_quote($search['seller']), 'i');

让我知道它是否有效! ;)

谢谢!