【问题标题】:MongoAlchemy regex return nothingMongoAlchemy 正则表达式不返回任何内容
【发布时间】:2016-04-26 13:48:24
【问题描述】:

我正在为一个项目测试 MongoAlchemy,我必须按名称搜索用户。

我正在尝试制作正则表达式,但查询结果始终为空。

我尝试了两种方法:

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

还有:

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

即使我使用像 /.*/ 这样非常通用的正则表达式,结果也始终为空。

谢谢。

【问题讨论】:

  • 也许是因为您应该使用a 而不是/a/?您正在使用 Python 模式,而正则表达式分隔符绝不是 Python 正则表达式的一部分。
  • 是的。去掉那些在其他情况下(Perl、sed 或其他)可能意味着“搜索”的斜线。在这里,您只需提供正则表达式本身。用filter 调用它表示需要搜索。

标签: python regex mongodb mongoalchemy


【解决方案1】:

在python中regular expressions没有使用/regexp/定义,这是javascript语法。

初始化正则表达式的正确方法是:

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

所以你应该使用:

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

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多