4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python正規表現、ひらがな・カタカナ・漢字にマッチさせるサンプルコード

Last updated at Posted at 2019-04-24

目的

Pythonの正規表現で、対象の文字列が日本語に一致するかどうかをチェックします。
開発現場でさっとコピーして適用しやすいように簡単なサンプルコードを作成しました。

サンプルコードの実行

python2.7で実行して確認済み。
$ python re_japanese.py

サンプルコード

本体はGithubに設置してあります。 漢字は厳密にマッチさせるにはCJK統合漢字以外も取り入れる方がよいらしいですが、通常の用途では十分な実用性があると見て、これを基準としています。

re_japanese.py
#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import re

###
# すべて「ひらがな」であればマッチする
###
pattern = u'^[\u3040-\u3098]+$'

# 対象の文字列もUnicodeにあわせる
string = u'あいうえお' # 正常系
result = re.match(pattern, string)
assert result is not None
print(result)
# <_sre.SRE_Match object at ...>が出力される

string = u'XあいうえおX' # 異常系、前後に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

string = u'あいXうえお' # 異常系、途中に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

###
# すべて「カタカナ」であればマッチする
###
pattern = u'^[\u30a1-\u30fa\u30fc]+$'

# 対象の文字列もUnicodeにあわせる
string = u'アイウエオ' # 正常系
result = re.match(pattern, string)
assert result is not None
print(result)
# <_sre.SRE_Match object at ...>が出力される

string = u'XアイウエオX' # 異常系、前後に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

string = u'アイXウエオ' # 異常系、途中に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

###
# すべて「漢字」であればマッチする
###
pattern = u'^[\u4e00-\u9fff]+$'

# 対象の文字列もUnicodeにあわせる
string = u'文字列' # 正常系
result = re.match(pattern, string)
assert result is not None
print(result)
# <_sre.SRE_Match object at ...>が出力される

string = u'X文字列X' # 異常系、前後に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

string = u'文字X列' # 異常系、途中に対象外文字あり
result = re.match(pattern, string)
assert result is None
print(result)
# Noneが出力される

参考資料

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?