Pythonで文字列が空白文字のみかどうか判定する方法|isspace()と正規表現の使い方
文字列が空白文字のみかどうかを判定する2つの方法
Pythonでは、文字列に空白文字(スペース、タブ、改行など)だけが含まれているかどうかを確認する方法が主に2つあります。1つ目は文字列メソッドの isspace() を使う方法、2つ目は標準ライブラリの re モジュールによる正規表現を使う方法です。
方法1:isspace() メソッドを使う
isspace() は、文字列が空白文字のみで構成されており、かつ少なくとも1文字以上ある場合に True を返す便利なメソッドです。
s = " \t\n"
print(s.isspace()) # True
s = " hello "
print(s.isspace()) # False(文字が含まれているため)
注意点として、空文字列の場合は False が返されます。「空文字列も空白のみとみなしたい」ケースには後述の正規表現が適しています。
s = ""
print(s.isspace()) # False
方法2:正規表現を使う
re モジュールの fullmatch() を使えば、文字列全体が空白文字のパターンに一致するかどうかを柔軟に判定できます。
import re
def is_whitespace(s):
return bool(re.fullmatch(r'\s+', s))
print(is_whitespace(" \t\n")) # True
print(is_whitespace("")) # False
print(is_whitespace(" abc ")) # False
パターンを r'\s*' に変更すれば、空文字列も「空白のみ」として扱うことができます。
まとめ
- シンプルに判定したい場合は
str.isspace()が最適です。 - 空文字列の扱いを制御したい場合や複雑な条件が必要な場合は、正規表現の
re.fullmatch()を活用しましょう。
-
Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>
-
Pythonで文字列に英字・数字・アンダースコア・ダッシュのみが含まれているか確認する方法
Pythonで文字列が英字・数字・アンダースコア(_)・ダッシュ(-)のみで構成されているかどうかを判定したい場合、正規表現を使うのが最も一般的で簡潔な方法です。パターン「^[A-Za-z0-9_-]*$」を利用することで、許可された文字以外が含まれていないかを簡単にチェックできます。 正規表現を使った方法 標準ライブラリのreモジュールにあるmatch()関数と、上記の正規表現パターンを組み合わせます。文字列全体がパターンに一致すればTrue、許可されていない文字が1つでも含まれていればFalseが返されます。 import re print(bool(re.match(^[A-Za-z0