私はフレーズを単語に分割するためにトークナイザを使用し、フランス語文字â
を含む単語に問題がありました。Pythonは非常に困惑している正規表現ユニコードの動作
私は、問題を特定しようとしましたが、それは最終的に、この単純な事実に煮詰め:それはアンサンブルマッチャーに入れています場合
>>> re.match(r"’", u'â', re.U)
>>> re.match(r"[’]", u'â', re.U)
<_sre.SRE_Match object at 0x21d41d0>
â
が’
を含むパターンにマッチしています。
UTF-8処理に関する私のところに何か問題がありますか、それともバグですか?
私のPythonのバージョンは次のとおりです。
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
EDIT:
ハムは、embarassingly十分な、交換r
がu
修正問題のパターンを前に置くようです。公式ドキュメントは、広範囲に使用していますなぜ
は、私は疑問に思うr
その後、:((
「r」は正確で重要です。 'r'を置き換える代わりに** ** **' u'(答えを参照)を追加するべきです。 –
@ m.buettner:yup答えを見る前に編集しました。私は行って、「r」と「u」が何をするかを調べました。そして、実際にはどちらも重要です。ありがとう:) – m09