2011-08-02 28 views

答えて

2

漢字を他の文字と区別するのには良い方法はありませんが、他の文字と区別することはできます。正規表現を使用すると、r"\w"(Python 2の場合はre.UNICODEフラグでコンパイルされます)を使用できます。これには、数字だけでなく文字も含まれますが、句読点は含まれません。

unicodedata.category(c)は、どのような文字cの種類を教えてくれます。あなたの中国語の手紙は "Lo"(手紙なしの手紙)であり、句読点は "Po"です。

+0

tksですが、Pythonの定期的なサポートのUnicodeカテゴリはありますか? – Dreampuf

+0

@Dreampuf:正規表現ですか?私の知る限りではありません。しかし、unicodedata.category(c).startswith( 'L')の場合は '' '.join(cの場合はc)を使用できます。 –

+0

ありがとう!あなたは正しい! – Dreampuf

2

Zhonライブラリーは、中国の句読点のリストを提供します:https://pypi.python.org/pypi/zhon

str = re.sub('[%s]' % zhon.unicode.PUNCTUATION, "", "你好,这只是一些中文文本..,.,全角") 

これは、あなたが望むほとんど何を行います。あなたが提供する文章には、 "。"のような非常に非標準の句読点が含まれているため、正確ではありません。とにかく、私は、Zhonが同様の問題を持つ他の人にとって役に立つかもしれないと思います。

+0

あなたのクールなライブラリをありがとう。 – Dreampuf

関連する問題