无法在unicode字符串中使用python的正则表达式忽略大小写。
mach = re.search(ur'(?P<mach>(?<=\s)%s(?=[\s\.]))' % u'смотреть', st, re.I | re.U)
其中
st = u" человека... Смотреть телесериал на тернет. "
注意这个词 - Смотреть
?
我希望我的正则表达式能够找到这个词以及смотреть
到目前为止:
print mach
> None
PS: 每个人现在都可以开始减去我的问题。它现在真的有效。即使从我的例子。但是,我花了一半的时间来解决这个问题。
答案 0 :(得分:6)
您正在使用st
的字符串。这样它将unicode正则表达式与某些字节串匹配(取决于您的编码)。使用unicode字符串:
st = u" человека... Смотреть телесериал на тернет. "
print re.search(ur'(?P<match>(?<=\s)%s(?=[\s\.]))' % u'смотреть', st, re.I | re.U).groupdict()
# {u'match': u'\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c'}