PyMongo 匹配 JavaScript 正则表达式对象

Posted

技术标签:

【中文标题】PyMongo 匹配 JavaScript 正则表达式对象【英文标题】:PyMongo matching JavaScript regular expression objects 【发布时间】:2020-01-31 22:53:44 【问题描述】:

我正在尝试找到一种在 pymongo 中表达 javascript 正则表达式的方法。根据文档,我不能将正则表达式与 $in 运算符一起使用。下面的代码将不起作用,因为列表中的项目显然无法识别。想知道如何表达列表项,以便它们在 python 中被识别为 JS 正则表达式。感谢帮助

cursor = db.requests.aggregate([
            '$match':
                
                    '_id': '$in':  [/^a/, /^A/]
                
            

【问题讨论】:

是否有特定原因要在 pymongo 中使用 js regExp 而不是 python regExp? @AnhTuanNguyen 我确实尝试了一个涉及 python regExp 的解决方案,并且似乎有效。感谢您的建议/问题 【参考方案1】:

试试这个:

lst = ['^a', '^A']

cursor = db.requests.aggregate([
'$match':
   
      '_id': '$in':  [re.compile(x) for x in lst]
   
])

【讨论】:

哇..从来没有想过这样做。谢谢!

以上是关于PyMongo 匹配 JavaScript 正则表达式对象的主要内容,如果未能解决你的问题,请参考以下文章

吃通javascript正则表达式

教你轻松搞定javascript中的正则

PyMongo $in + $正则表达式

如何在 pymongo 中正确设计正则表达式?

pymongo处理正则表达式的情况

Pymongo $regexMatch 正则表达式选项中的无效标志:u