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 に答える