2016-04-26 1 views
0

Я тестирую MongoAlchemy для проекта, и я должен искать пользователя по имени.MongoAlchemy regex return nothing

Я пытаюсь создать регулярное выражение, но результат запроса всегда пуст.

Я попробовал два метода:

import re 
users = User.query.filter({"name":re.compile("https://stackoverflow.com/a/", re.IGNORECASE)}).all() 

А:

users = User.query.filter(User.name.regex('/a/', ignore_case=True)).all() 

Даже если я использую очень общее выражение типа /.*/, результат всегда пустой.

спасибо.

+3

Может быть, потому что вы должны использовать 'Ā' вместо'/а/'? Вы используете шаблоны Python, а разделители регулярных выражений никогда не являются частью регулярных выражений Python. –

+0

Да. Разделите эти черты, которые в других контекстах (Perl, sed или что-то еще) могут означать «поиск». Здесь вам просто нужно предоставить регулярное выражение. Вызов с помощью 'filter' означает, что требуется поиск. – Alfe

ответ

1

В python regular expressions не определены с помощью /regexp/, это синтаксис javascript.

Правильный способ инициализации регулярных выражений будет:

re.compile(r".*", re.IGNORECASE) 

Таким образом, вы должны использовать:

users = User.query.filter({"name": re.compile(r".*", re.IGNORECASE)}).all() 
+0

Он работает, спасибо. Теперь работают два метода. – amiceli

 Смежные вопросы

  • Нет связанных вопросов^_^