文字列入力からハングル、英語、数字を抽出しようとしています。pythonはハングルを処理していません
hangul = re.compile('[^a-zA-Z0-9\u3131-\u3163\uac00-\ud7a3]+')
s = u'abcd 가나다라 1234'
print hangul.sub('', s)
これは私をu'abcd1234' 与える
なぜそれが\ uac00- \ ud7a3無視するのですか?
文字列入力からハングル、英語、数字を抽出しようとしています。pythonはハングルを処理していません
hangul = re.compile('[^a-zA-Z0-9\u3131-\u3163\uac00-\ud7a3]+')
s = u'abcd 가나다라 1234'
print hangul.sub('', s)
これは私をu'abcd1234' 与える
なぜそれが\ uac00- \ ud7a3無視するのですか?
re.compile
のUnicode文字列を使用します。そうでない場合、\u3163
はUnicodeエスケープとして扱われません。
.sub
の''
も必須ではありませんが、Unicodeである必要があります。 Python 2ではUnicodeへの暗黙的な変換があり、Python 3ではそれが必要です。
#coding:utf8
import re
hangul = re.compile(u'[^a-zA-Z0-9\u3131-\u3163\uac00-\ud7a3]+')
s = u'abcd 가나다라 1234'
print hangul.sub(u'', s)
出力:
abcd가나다라1234
私はpythonのjamoための開発者です。 Python 3を使用している場合は 、次にjamo.is_hangul_char
などの関数を使用できます。それ以外の場合は、source codeを使用して(あなたの正規表現に少数の韓国語の文字が欠落している)手助けすることができます。
旧式のハングルjamoの表示文字のいくつかを見逃したくない場合は、3131-\u3163\u3165-\u318E
を使用して、すべてのハングル互換性のあるjamoをマッチさせます。現代の表示文字だけが心配な場合は、\u3131-\u314E\u314F-\u3163
を使用して、すべての現代のハングル互換のjamoにマッチさせます。
ありがとうございます!できます!! – nolsigan