3

出来ますか?

このコードはPython3で動作します:

In [1]: import re

In [2]: re.split(r'\W+', 'Les Misérables')
Out[2]: ['Les', 'Misérables']

しかし、 Python2では機能しません:

In [1]: import re

In [2]: re.split(r'\W+', u'Les Misérables')
Out[2]: [u'Les', u'Mis', u'rables']

これも機能しません (es_ES.UTF-8ロケールを使用した Linux でテスト済み):

In [1]: import locale

In [2]: locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')
Out[2]: 'es_ES.UTF-8'

In [3]: import re

In [4]: re.split(ur'\W+', u'Les Misérables', re.U|re.L)
Out[4]: [u'Les', u'Mis', u'rables']

Python2で正規表現を Unicode で動作させる方法はありますか?

注:問題は、Unicode 対応の一致を取得することです。上記の正規表現を書き直して、ASCII クラスのみを使用して単語を区切ることができることはわかっています。

4

1 に答える 1