Pythonの正規表現でカタカナやひらがなを引っかける
perlだとUnicodeプロパティで
しかし、PythonはUnicodeプロパティをサポートしていない?ようですので、正規表現で獲得します。
これらは使用用途に応じて、Unicode表を見る必要があります。
図書館員のコンピュータ基礎講座さんにUnicode表が、きれいにまとまっています。
閉鎖中ですが、まだサイトは当面維持されるようです。
- カタカナの表
- ひらがなの表
\p{Hiragana}
とするところです。 しかし、PythonはUnicodeプロパティをサポートしていない?ようですので、正規表現で獲得します。
前提
Unicodeが対象です。ひらがなの獲得
reモジュールで正規表現をコンパイルして、fullmatchで全一致かどうかを判定します。\u3041
は「ぁ」、\u3093
は「ん」を表します。# -*- coding: utf-8 -*-
import re
re_hiragana = re.compile(r'[\u3041-\u3093]')
print(re_hiragana.fullmatch('ひらがな'))
# Trueが返ってくる
カタカナの獲得
ひらがなと同様です。\u30A1
は「ァ」、\u30F4
は「ヴ」を示します。# -*- coding: utf-8 -*-
import re
re_katakana = re.compile(r'[\u30A1-\u30F4]+')
print(re_katakana.fullmatch('カタカナ'))
# Trueが返ってくる
Unicodeの確認
上記正規表現は、厳密に言うとすべてのカタカナやひらがなを満たしていません。これらは使用用途に応じて、Unicode表を見る必要があります。
図書館員のコンピュータ基礎講座さんにUnicode表が、きれいにまとまっています。
閉鎖中ですが、まだサイトは当面維持されるようです。
- カタカナの表
- ひらがなの表