Python | 文字列に日本語が含まれているか判定する方法

Python 判別・判定,Python

Python | 文字列に日本語が含まれているか判定する方法

Pythonの()メソッドを使って文字列に日本語が含まれているかどうかを判定する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

len()で文字列の長さから日本語が含まれているかどうか判定する

len()関数で文字列の長さを取得し、utf-8にエンコードした文字列の長さを比較します。
これにより、文字列にマルチバイト文字が含まれているかどうかを判定可能です。

この場合、全角記号や他の国で使われているマルチバイト文字の言語などもマルチバイト文字として判定されることに注意が必要です。
簡単なスパム対策用などになります。

str='ばなな'
if len(str) != len(str.encode('utf-8')):
	print('マルチバイト文字が含まれています。')
else:
	print('マルチバイト文字は含まれていません。')

正規表現ライブラリとsearch()関数を使って日本語が含まれているかどうか判定する

正規表現ライブラリとsearch()関数を使って正規表現で日本語が含まれているかどうかを判定します。

以下は、ひらがな、カタカナが含まれているかどうかを判別するサンプリコードになります。

import re

str='ばなな'
if re.search(r'[ぁ-ん]+|[ァ-ヴー]+', str):
	print('日本語が含まれています。')
else:
	print('日本語が含まれていません。')

以下のサンプルコードではひらがな、カタカナ、漢字のいずれかが含まれているかどうかを判定します。
漢字のみの場合も判定しますので確実に日本語とはならない可能性はあります。

import re

str='ばなな'
if re.search(r'[ぁ-ん]+|[ァ-ヴー]+|[一-龠]+', str):
	print('日本語が含まれています。')
else:
	print('日本語が含まれていません。')