Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex mongodb正则表达式,包含一系列unicode字符_Regex_Mongodb_Unicode_Pcre_Cjk - Fatal编程技术网

Regex mongodb正则表达式,包含一系列unicode字符

Regex mongodb正则表达式,包含一系列unicode字符,regex,mongodb,unicode,pcre,cjk,Regex,Mongodb,Unicode,Pcre,Cjk,我尝试使用mongodb(版本3.4)$regex操作符和一系列unicode字符。但我没能让它工作(我用机器人来测试它) 我尝试了以下方法: db.getCollection('myCollection').find( { "field": { $regex: /[\x{20000}-\x{2A6D6}]/ } }) 它输出以下错误: 错误:第4行:无效的正则表达式 我设置的正则表达式必须与CJK统一表意文字扩展B的所有字符匹配。 它似乎与C

我尝试使用mongodb(版本3.4)$regex操作符和一系列unicode字符。但我没能让它工作(我用机器人来测试它)

我尝试了以下方法:

db.getCollection('myCollection').find(
{ 
    "field": { 
            $regex: /[\x{20000}-\x{2A6D6}]/
      } 
})
它输出以下错误:

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

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


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

你必须使用简单的引号来支持PCRE表达式(cf),并且必须避开反斜杠。因此,以下措施应该有效:

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

这个模式不是应该用JS正则表达式解析吗?请尝试
/(?:[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6])/
等效项。或者,检查它是否支持ES6:
/[\u{20000}-\u{2A6D6}]/u
/[\u{20000}-\u{2A6D6}]/u
生成错误(u不是有效的正则表达式标志),如果没有
u
,错误是正则表达式无效。如果使用字符串文字怎么办
$regex:'[\x{0}-\x{1}]
/(?:[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6])/
被mongo接受,但没有产生任何结果(应该是,考虑到我拥有的数据集),我仍然感到奇怪why@revo
$regex:'[\x{0}-\x{1}]
产生相同的错误“无效正则表达式”