我尝试使用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}]/
相同的错误
你能帮我理解为什么我的正则表达式不起作用吗?
你必须使用简单的引号来支持PCRE表达式(cf https://docs.mongodb.com/manual/reference/operator/query/regex/),你必须逃避反斜杠。所以以下应该有效:
db.getCollection('myCollection').find(
{ "field": {
$regex: '[\\x{20000}-\\x{2A6D6}]'
}
})