【发布时间】:2014-02-14 18:50:39
【问题描述】:
我使用正则表达式来查找句子中的单词。但是出现了下面代码中描述的问题。 在http://www.regexr.com/ 上一切正常 但是 python 在非 ascii 变体上不匹配
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
【问题讨论】: