mongodb regex с рядом символов юникода - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь использовать оператор регулярного выражения mongodb (версия 3.4) с диапазоном символов Юникода. Но мне не удается заставить это работать (я использую robomongo, чтобы проверить это).

Я попробовал следующее:

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

Выводится следующая ошибка:

Ошибка: строка 4: недопустимое регулярное выражение

Регулярное выражение, которое я настроил, должно соответствовать всем символам CJK Unified Ideographs Extension B. Кажется, это не связано с использованием шестнадцатеричных значений CJK в Unicode, потому что у меня та же ошибка с более простым регулярным выражением типа $regex: /[\x{0}-\x{1}]/

Можете ли вы помочь мне понять, почему мое регулярное выражение не работает?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы должны использовать простые кавычки для поддержки выражений PCRE (cf https://docs.mongodb.com/manual/reference/operator/query/regex/), и вы должны избегать обратной косой черты. Поэтому должно работать следующее:

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