2016-04-26 84 views
0

我正在測試項目的MongoAlchemy,我必須按名稱搜索用戶。MongoAlchemy正則表達式不返回

我試圖做一個正則表達式,但查詢結果總是空的。

我嘗試了兩種方法:

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

也許是因爲你應該使用'了',而不是'/ A /'?您正在使用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