2016-04-26 11 views
0

私はプロジェクトのためにMongoAlchemyをテストしています。私は名前でユーザを検索します。MongoAlchemy regex returns nothing

私は正規表現を作ろうとしていますが、クエリの結果は常に空です。

私は2つの方法を試してみました:私は/.*/のような非常に一般的な正規表現を使用する場合でも、結果は常に空です

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

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

とします。

ありがとうございます。

+3

あなたは '/ A /'の代わりに 'A'を使用する必要がありますので、?あなたはPythonパターンを使用しており、正規表現区切り文字は決してPython正規表現の一部ではありません。 –

+0

うん。他のコンテキスト(Perl、sedなど)で「検索」を意味するスラッシュを取り除きます。ここでは、正規表現自体を与えなければなりません。それを 'filter'と呼ぶと、検索が必要であることが示されます。 – Alfe

答えて

1

regular expressions/regexp/で定義されていませんが、これはJavaScriptの構文です。

正規表現を初期化する適切な方法は、次のようになります。

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

あなたが使用する必要があります。

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

これは動作します、ありがとうございます。 2つの方法が動作します。 – amiceli