首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用正则表达式解析sqlite查询

无法使用正则表达式解析sqlite查询
EN

Stack Overflow用户
提问于 2016-10-08 04:30:03
回答 1查看 125关注 0票数 2

我正试图找到一种方法来迭代数据库,并使用正则表达式匹配其中包含02的所有行。当进行匹配时,计数应重置为0,如果没有匹配,计数应累积为负1。当我使用列表时,代码工作。

代码语言:javascript
运行
复制
import sqlite3
import re

conn = sqlite3.connect('p34.db')

c = conn.cursor()



r = re.compile(r'\b[5-9]*(?:0[5-9]?2|2[5-9]?0)[5-9]*\b')
q = "SELECT Number FROM 'Pick 3'"



c.execute(q)
rez = c.fetchall()
count = 0 


for i in rez:
    if i == r:
        count = 0
    else:
        count = count -1

print(count)
conn.close()
print (rez)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-08 04:37:49

您可能希望使用r.search()执行正则表达式搜索:

代码语言:javascript
运行
复制
for i in rez:
    if r.search(i[0]):
        count = 0
    else:
        count -= 1

注意使用i[0]从查询返回的每个元组获取第一个值。

使用i == r只需将元组i (查询返回的)与已编译的正则表达式模式r进行比较,并且永远不会为真。它不执行给定模式的任何搜索方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39928690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档