如何使用pymongo在mongodb查询中实现包含{m,n}的正则表达式?

时间:2015-10-30 10:48:25

标签: python regex mongodb mongodb-query pymongo

我想为一个特定字段计算具有一定数量字符的文档,并使用正则表达式执行此操作:

total_count = db.collection.count({'field': {'$regex': '^pattern{m,n}$'}})

这失败了。 问题出在mongodb / pymongo的{m,n}语法中,因为以下结果很好:

total_count = db.collection.count({'field': {'$regex' : '^pattern+'}})

表达式'/^pattern{m,n}$/'在其他应用程序中运行顺畅(在http://www.regexr.com/上测试)

就我而言,pattern = [0-9a-zA-Z \W],但这不应该是相关的。

1 个答案:

答案 0 :(得分:2)

您需要使用re.compile函数将正则表达式模式编译为正则表达式对象

import re
pat = re.compile(r'^pattern{n, m}$')
total_count = db.collection.count({'field': {'$regex': pat}})