具有一系列unicode字符的mongodb正则表达式

问题描述 投票:1回答:1

我尝试使用mongodb(版本3.4)$ regex运算符和一系列unicode字符。但我没有设法使它工作(我正在使用robomongo来测试它)。

我尝试了以下方法:

db.getCollection('myCollection').find(
{ 
    "field": { 
            $regex: /[\x{20000}-\x{2A6D6}]/
      } 
})

它输出以下错误:

错误:第4行:正则表达式无效

我设置的正则表达式必须匹配CJK统一表意文字扩展B的所有字符。它似乎与使用CJK unicode十六进制值无关,因为我有一个更简单的正则表达式,如$regex: /[\x{0}-\x{1}]/相同的错误

你能帮我理解为什么我的正则表达式不起作用吗?

regex mongodb unicode pcre cjk
1个回答
1
投票

你必须使用简单的引号来支持PCRE表达式(cf https://docs.mongodb.com/manual/reference/operator/query/regex/),你必须逃避反斜杠。所以以下应该有效:

db.getCollection('myCollection').find(
   { "field": { 
      $regex: '[\\x{20000}-\\x{2A6D6}]' 
      }
   })
© www.soinside.com 2019 - 2024. All rights reserved.