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}]'
}
})
我尝试将 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}]'
}
})