4

不能使 python 的正则表达式忽略 unicode 字符串中的大小写。

mach = re.search(ur'(?P<mach>(?<=\s)%s(?=[\s\.]))' % u'смотреть', st, re.I | re.U)

在哪里

st = u" человека... Смотреть телесериал на тернет. "

注意这个词 - Смотреть

我希望我的正则表达式能找到这个词以及这个смотреть

至今:

print mach
> None

PS:现在大家可以开始减去我的问题了。它现在真的有效。即使从我的例子。但是,我花了半天时间来解决这个问题。

4

1 回答 1

7

您正在为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'}
于 2013-05-30T17:38:29.357 回答