正则表达式与括号不匹配
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');
让我知道它是否有效! ;)
谢谢!
我正在使用 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');
让我知道它是否有效! ;)
谢谢!