データベースを反復処理し、正規表現を使用して02を持つすべての行と一致させる方法を見つけようとしています。一致すると、カウントは0にリセットされ、一致しない場合は、負の1でカウントが累積されます。コードを使用するとコードが機能します。正規表現を使用してsqliteクエリを解析できません
for i in rez:
if r.search(i[0]):
count = 0
else:
count -= 1
注クエリによって返される各タプルの最初の値を取得するi[0]
の使用:
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)
'i == r'は正規表現マッチングでは無効です。 [search](https://docs.python.org/3/library/re.html#re.search)のようなregexメソッドを使用する必要があります。 – idjaw