2016-05-21 6 views
1

私は小さなコードでいくつかのUnicode文字のデバッグ情報を印刷しています。互換性のため、Unicode 8.0に付属しているすべてのものを除外する必要があります。PythonでコードポイントのUnicode版を入手する

#!/usr/bin/env python3 

import unicodedata 

skip = [ 
    0x0001F643, # Unicode 8.0 
    0x0001F644, # Unicode 8.0 
] 

for n in range(0x0001F600, 0x0001F64F): 
    if n in skip: 
     continue 

    c = chr(n) 
    name = unicodedata.name(c) 
    print('{} U+{:5X} {}'.format(c, n, name)) 

特定のコードポイントがプログラムによって追加されたUnicodeバージョンを取得する方法はありますか?

答えて

1

unicodedataには、Unicode文字に関するいくつかのプロパティ情報が含まれていますが、残念ながら Ageはその1つではありません。この情報にアクセスするには、UCD用にDerivedAge.txtをダウンロードして解析する必要があります。

+0

よろしくお願い致します。このリンクは、 '\ p {age = 3.0}'のようなユニコードプロパティの正規表現を表しています。私はregexモジュールを使ってこれを実行しようとしました。しかし、 'print(regex.compile(r '[\ p {age = 8.0}]')。match("ö "))'私には奇妙なコンパイルエラーがあります。どのように正規表現を利用するか考えてみましょうか? –

+0

're'はUnicodeプロパティをサポートしていません。 ['regex'](https://pypi.python.org/pypi/regex)はいくつかのUnicodeプロパティをサポートしていますが、Ageはサポートしていません。あなたが望むものを得るためには、UCDを直接使用する必要があります。 –

関連する問題