博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python】pymongo中正则查询时的转义问题
阅读量:6994 次
发布时间:2019-06-27

本文共 562 字,大约阅读时间需要 1 分钟。

在查询mongo时用到了正则查询

 

设字符串为   str = '/ab/cd.ef?g='

直接用正则查询没有匹配。

collection.find({
"re":{
'$regex':str},'b':{
'$nin':[False]}}).count()

原因是 /  .  ? 都是正则表达式中的特殊字符,如果要保留原义则需要用"\"来进行转义

即把字符串改成  str = '\/ab\/cd\.ef\?g='

但是,由于"\"在python中是一个特殊符号,所以要用"\\"来表示

 

定义一个把字符转义的函数

def transfer_str(str):    new_str = ""    special = ['/','^','$','*','+','?','.']    for c in str:        if c in special:            new_str += '\\'        new_str += c    return new_str

然后调用

collection.find({
"re":{
'$regex':transfer_str(str)},'b':{
'$nin':[False]}}).count()

 

这样就可以得到正确结果了

 

转载地址:http://fgivl.baihongyu.com/

你可能感兴趣的文章
CodeForces 552C Vanya and Scales
查看>>
还原一个真实的华为存储
查看>>
【原创】MySQL 最新商业版备份工具使用方法
查看>>
使用Python开发一个超级简单的接水果小游戏,零基础也可以学会
查看>>
ruby.taobao.org
查看>>
mysql 5.1 变量专题
查看>>
MyEclipse6.5下struts2+spring2+hibernate3 整合
查看>>
android中的JSON解析
查看>>
我的友情链接
查看>>
js模拟表单提交
查看>>
微信小程序开发简易计算器改进版
查看>>
混合背包问题
查看>>
Android studio树形
查看>>
hihoCoder1043
查看>>
【康托展开】
查看>>
6.19 docker (二)实战WordPresser
查看>>
关于mysql的初步学习 (三)
查看>>
html常用标签6-表单标签
查看>>
浅谈Java抽象类
查看>>
Codeforces Round #417 (Div. 2)
查看>>