데이터베이스를 반복하고 정규 표현식을 사용하여 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