Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。
isalnum()メソッドを使う方法
Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。
>>> '123abc'.isalnum()
True
>>> '123#$%abc'.isalnum()
False
正規表現を使う方法
同じ結果は正規表現でも得られます。英数字のマッチングには、re.match(regex, string) を正規表現パターン "^[a-zA-Z0-9]+$" と組み合わせて使います。
>>> import re
>>> bool(re.match('^[a-zA-Z0-9]+$', '123abc'))
True
>>> bool(re.match('^[a-zA-Z0-9]+$', '123#$%abc'))
False
re.match() はマッチオブジェクトを返します。マッチが成功したかどうかを確認するには、bool() を使って真偽値に変換します。マッチした場合はオブジェクトが返され True に、失敗した場合は None が返され False になるため、結果を明確に判断できます。
使い分けのポイント
なお、isalnum() はUnicodeに対応しているため、日本語などの全角文字も「英数字」として扱われます。ASCIIの半角英数字のみを厳密に判定したい場合は、正規表現の ^[a-zA-Z0-9]+$ を使う方法が適しています。用途に応じて両者を使い分けるとよいでしょう。
-
Pythonで文字列が英数字のみで構成されているか判定する方法【isalnum()と正規表現】
Pythonでは、文字列がアルファベットや数字だけで構成されているかどうかを簡単にチェックできます。主な方法は2つあります。1つは文字列クラスに組み込まれている isalnum() メソッドを使う方法、もう1つは正規表現(regex)を使う方法です。 1. isalnum() メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、その文字列が英数字(アルファベットと数字)のみで構成されている場合に True を、それ以外の場合に False を返します。 使用例:英数字のみの文字列 print(12
-
Pythonで部分文字列が文字列に含まれているか確認する方法(in演算子とfindメソッド)
Pythonでは、ある文字列が別の文字列の部分文字列(サブストリング)として含まれているかどうかを簡単に確認できます。最も基本的な方法は、in 演算子を使うことです。in 演算子を使った判定方法in 演算子は、左辺の文字列が右辺の文字列に含まれている場合に True を、含まれていない場合に False を返します。以下はその使用例です。print(ello in hello world)実行結果:Trueこのように、ello は hello world の中に含まれているため、True が出力されます。find() メソッドで位置(インデックス)を取得する部分文字列が含まれているかどうかに加