我使用正則表達式來查找句子中的單詞。但是下面代碼中描述的問題出現了。 它適用於http://www.regexr.com/ 所有罰款,但蟒蛇不匹配非ASCII變種意外的RegExp在非ascii符號上的Python 2.7中工作
import re
#ascii
pat = u"(tes?ts?)"
ttt = re.finditer(pat, u"test and tets")
print ttt.next().start()
print ttt.next().start()
# this works fine
#russian
pat = u"(молоде?цы?)"
ttt = re.finditer(pat, u"молодец и молодцы")
print ttt.next().start()
print ttt.next().start()
# this does not match anything - throws iterator error
感謝您的幫助!謝謝 UPD:輸出+回溯
0
9
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
StopIteration
UPD2:變着花樣這個
pat = u"(молод[е]?ц[ы]?)"
ttt = re.finditer(pat, u"молодец и молодцы")
print ttt.next().start()
print ttt.next().start()
導致了第一個字匹配,但沒有第二
18
Traceback (most recent call last):
File "<stdin>", line 11, in <module>
StopIteration
我無法重現此問題,您可以添加'print repr(pat)和'print repr(u「молодецимолодцы」)'? –
你提到它會拋出一個迭代器錯誤。請[追溯]到你的問題。 – thegrinner
如果你想測試Python的東西使用python的工具:www.pythex.org –