読者です 読者をやめる 読者になる 読者になる

かんちゃんの備忘録

プログラミングや言語処理、ガジェットなど個人の備忘録です。(メモ書き+α)

Pythonの正規表現でカタカナやひらがなを引っかける

perlだとUnicodeプロパティで\p{Hiragana}とするところです。
しかし、PythonUnicodeプロパティをサポートしていない?ようですので、正規表現で獲得します。


前提

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表が、きれいにまとまっています。
閉鎖中ですが、まだサイトは当面維持されるようです。
- カタカナの表
- ひらがなの表