python での正規表現によるひらがな、カタカナ、漢字の判定方法のメモ。
ひらがな、カタカナはコードポイントの範囲指定でチェックすることができます。
ひらがな:u+3040 - u+309F
カタカナ:u+30A0 - u+30FF
また、regex では Script=Hiragana/Katakana/Han を指定することで
ひらがな、カタカナ、漢字の判定を行うことができます。
ひらがな、カタカナはコードポイントの範囲指定でチェックすることができます。
ひらがな:u+3040 - u+309F
カタカナ:u+30A0 - u+30FF
また、regex では Script=Hiragana/Katakana/Han を指定することで
ひらがな、カタカナ、漢字の判定を行うことができます。
import sys import re import regex # ひらがな u+3040 - u+309F str = 'あいうえお' res = re.match('^[\u3040-\u309F]+$', str) print(res) --> <re.Match object; span=(0, 5), match='あいうえお'> res = regex.match('^\p{Script=Hiragana}+$', str) print(res) --> <regex.Match object; span=(0, 5), match='あいうえお'> # カタカナ u+30A0 - u+30FF str = 'アイウエオ' res = re.match('^[\u30A0-\u30FF]+$', str) print(res) --> <re.Match object; span=(0, 5), match='アイウエオ'> res = regex.match('^\p{Script=Katakana}+$', str) print(res) --> <regex.Match object; span=(0, 5), match='アイウエオ'> # 漢字 str = '漢字' res = regex.match('^\p{Script=Han}+$', str) print(res) --> <regex.Match object; span=(0, 2), match='漢字'> # ひらがな+カタカナ str = 'ひらがなカタカナ' res = re.match('^[\u3040-\u309F\u30A0-\u30FF]+$', str) print(res) --> <re.Match object; span=(0, 8), match='ひらがなカタカナ'> # ひらがな+カタカナ+漢字 str = 'ひらがなカタカナ漢字' res = regex.match('^(?:\p{Script=Hiragana}|\p{Script=Katakana}|\p{Script=Han})+$', str) print(res) --> <regex.Match object; span=(0, 10), match='ひらがなカタカナ漢字'>