【发布时间】:2016-02-26 04:17:42
【问题描述】:
我想进行单词边界搜索。例如,假设您有以下条目:
- “厨师。”
- “厨师”
- “厨师。”
- “厨师是”
- “做饭。”
并进行搜索以查找整体包含“cook”的条目。即只返回第 3、4、5 个条目。
在这种情况下,当我使用\b 字边界语句时,它会由于自动转义而变得扭曲。
import re, pymongo
# prepare pymongo
collection.find({"entry": re.compile('\bcook\b').pattern})
当我打印查询字典时,\b 变为 \\b。
我的问题是如何使用 PyMongo 进行单词边界搜索?我可以在 MongoDB shell 中执行此操作,但在 PyMongo 中失败了。
【问题讨论】:
-
我觉得应该是
\\bcook\\b -
是的,
\bcook\b变为\\bcook\\b -
试试
r'\bcook\b'。 -
我试过了,结果是一样的。我认为原因是 dict 创建使它逃脱了。
{"field": re.compile(r'\bsome\b').pattern}
标签: python regex mongodb pymongo