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

mongodb regex with a range of unicode characters

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

我尝试了以下方法:

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

它输出以下错误:

Error: Line 4: Invalid regular expression

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

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

您必须使用简单的引号来支持 PCRE 表达式(参见 https://docs.mongodb.com/manual/reference/operator/query/regex/ )并且您必须转义反斜杠。所以以下应该有效:

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