Pythonの正規表現で文字列が英数字のみかどうかを判定する方法
正規表現を使った英数字チェックの基本
Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。
この正規表現の意味は以下の通りです。
^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証
実行例
>>> import re
>>> bool(re.match('^[a-zA-Z0-9]+$', '789def'))
True
>>> bool(re.match('^[a-zA-Z0-9]+$', '789#%$def'))
False
上記の例では、'789def' はすべてが英数字であるため True が返され、記号を含む '789#%$def' は False が返されます。
bool() で変換する理由
re.match() はマッチに成功した場合はマッチオブジェクトを、失敗した場合は None を返します。結果を明確に True / False として扱いたい場合は、bool() を使って真偽値に変換すると分かりやすくなります。
補足:str.isalnum() という代替手段
なお、正規表現を使わずに string.isalnum() メソッドでも同様の判定が可能です。ただし isalnum() は全角文字や一部のUnicode文字も「英数字」として扱うため、厳密に半角英数字のみに限定したい場合は、ここで紹介した正規表現による方法が適しています。
-
文字列がパングラムかどうかを判定するPythonプログラムの書き方
このチュートリアルでは、文字列がパングラムかどうかを判定するPythonプログラムの作成方法を解説します。まずは、パングラムについて簡単に説明しましょう。 パングラムとは? パングラムとは、アルファベットの26文字すべて(大文字・小文字は問わない)を含む文字列のことです。有名な例として「The Quick Brown Fox Jumps Over The Lazy Dog」が挙げられます。 パングラムの判定は、いくつかの異なる方法で実装できます。ここでは、代表的な2つの方法を紹介します。 方法1:基本的なループ処理 まず、最もシンプルな方法から見ていきましょう。以下の手順に従ってプログラムを作
-
Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法
本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列