我不知道這是爲什麼不工作:Python的正則表達式愁楚
import re
import csv
def check(q, s):
match = re.search(r'%s' % q, s, re.IGNORECASE)
if match:
return True
else:
return False
tstr = []
# test strings
tstr.append('testthisisnotworking')
tstr.append('This is a TEsT')
tstr.append('This is a TEST mon!')
f = open('testwords.txt', 'rU')
reader = csv.reader(f)
for type, term, exp in reader:
for i in range(2):
if check(exp, tstr[i]):
print exp + " hit on " + tstr[i]
else:
print exp + " did NOT hit on " + tstr[i]
f.close()
testwords.txt包含此行:
blah, blah, test
所以基本上 '測試' 是正則表達式。沒什麼複雜的,只是一個簡單的詞。這裏的輸出:
test did NOT hit on testthisisnotworking
test hit on This is a TEsT
test hit on This is a TEST mon!
爲什麼它沒有擊中第一個字符串?我也試過\s*test\s*
沒有運氣。幫幫我?
我不知道python,但我知道正則表達式。你可以縮小它只是一個正則表達式的潛在問題嗎? http://worksol.be/regex.html – buckley
「Python正則表達式困境」。這給了我一個小笑。我覺得你,正則表達式可能是可悲的。 – jlafay