[英]Python: REGEX works in one place, but not another with same input
我將在此之前說明我不是一個Python編碼器,我只是一起攻擊這個以便快速檢查我的Android應用程序的數據庫。 那我想把它變成我網頁的腳本。 除此之外,我無法弄清楚為什么for-statement之外的代碼在內部不起作用。 看起來行和行2是相同的。 它在第一個中拉出“初學者”表名,但不會在循環中。 謝謝您的幫助。
row = "(u'beginner',)"
print row
temp = re.search('\(u\'(.*)\',\)', row).group(1)
print temp
#getRows is a cursor fetch on a sqlite DB if that matters
for row2 in getRows:
print row2
temp = re.search('\(u\'(.*)\',\)', row2).group(1)
print temp
OUTPUT:
Finding files... done.
Importing test modules ...
(u'beginner',)
beginner
(u'beginner',)
done.
在0.000秒內進行0測試
好
我知道它為什么不起作用:因為雖然row和row2的字符串表示是相同的,但它們實際上並不完全相同。 嘗試打印type(row2)
,你會發現它是一個元組。 我知道這是因為DB API會返回一個元組,而不是一個看起來像元組的字符串。
所以當你有這個:
row = "(u'beginner',)"
它是一個看起來像元組的字符串,你可以重新搜索它。 但是你不應該這樣做 - 在數據庫行中,你應該只通過row2[0]
獲取字符串內容而不使用re。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.