2016-09-30 8 views
3

私はpython 2.7.1を使用して文字列を文法クラスターに解析する方法を見つけようとしています。たとえば、文字列:Python 2.7を使用して文字列を適切に文法クラスターに解析するにはどうすればよいですか?

details = u"Hello " 

私のように解析されるべきと考えている:私はunisegライブラリからgrapheme_clustersを使用していたが、これは生産

[u"H", u"e", u"l", u"l", u"o", u"\U0001f1e6\U0001f1f9", u"\U0001f1fb\U0001f1ea"] 

[u"H", u"e", u"l", u"l", u"o", u"\U0001f1e6\U0001f1f9\U0001f1fb\U0001f1ea"] 

私が持っています2.7.1を使用する際の厳しい要件。私はユニコードサポートがPython 3.Xで優れていることを知っています。

1)この文字列を正しく解析する方法は私の解釈ですか?
2)python 2.7でこれを行う方法はありますか?
3)これは実際にはPython 3.Xでもっと簡単ですか?

ありがとうございました。

答えて

4

この動作は正しく行われていましたが、ルールが変更されました。

unisegバージョン0.7.1(現行の時点)では、unisegのマニュアルは、Unicode Standard Annex #29 Version 21で与えられた古いバージョンのUnicode書面クラスター境界ルールを参照しています。このバージョンには規則が含まれています

地域インジケータ記号を区切りません。 Unicode Standard Annex #29 Version 29に与えられたUnicode書記素クラスタ境界ルールの最新バージョンは、

は絵文字フラグ配列内に侵入しないでくださいと言い

。つまり、区切り記号の前に奇数のRI文字がある場合、地域標識(RI)記号の間で区切りません。

unisegを使用してバグレポートを作成することもできます。あるいは、別のライブラリに最新の実装が追加されている可能性があります。 uniseg bitbucketページは、PyICUのようないくつかの選択肢にリンクしています。

関連する問題