我正试图找到一种方法来迭代数据库,并使用正则表达式匹配其中包含02的所有行。当进行匹配时,计数应重置为0,如果没有匹配,计数应累积为负1。当我使用列表时,代码工作。
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)
发布于 2016-10-08 04:37:49
您可能希望使用r.search()
执行正则表达式搜索:
for i in rez:
if r.search(i[0]):
count = 0
else:
count -= 1
注意使用i[0]
从查询返回的每个元组获取第一个值。
使用i == r
只需将元组i
(查询返回的)与已编译的正则表达式模式r
进行比较,并且永远不会为真。它不执行给定模式的任何搜索方法。
https://stackoverflow.com/questions/39928690
复制相似问题