Pythonでは、文字列に対するさまざまな判定が簡単に行えます。
この記事では、以下の9つの判定方法について説明します。
文字列が空か
文字列が空であるかを判定するには、以下のように書きます。Pythonでは、空文字列は偽(False)とみなされるため、if not s:
という条件で判定できます。
s = ""
if not s:
print("文字列は空です")
このコードは、s
が空文字列である場合に “文字列は空です” と表示します。
文字列が一致するか
2つの文字列が一致するかを判定するには、==
演算子を使用します。
s1 = "hello"
s2 = "hello"
if s1 == s2:
print("文字列は一致します")
このコードは、s1
と s2
が同じ場合に “文字列は一致します” と表示します。
文字列に指定した文字列が含まれるか
ある文字列が別の文字列に含まれているかを判定するには、in
演算子を使用します。
s = "Pythonは楽しい"
if "楽しい" in s:
print("文字列に '楽しい' が含まれています")
このコードは、s
に “楽しい” という文字列が含まれている場合に “文字列に ‘楽しい’ が含まれています” と表示します。
文字列に漢字が含まれるか
文字列に漢字が含まれているかを判定するには、正規表現を使用します。Unicodeの範囲を指定して検索します。
import re
s = "Pythonは楽しい"
if re.search(r'[\u4e00-\u9fff]', s):
print("文字列に漢字が含まれています")
このコードは、s
にUnicode範囲 \u4e00
から \u9fff
の文字(漢字)が含まれている場合に “文字列に漢字が含まれています” と表示します。
文字列にひらがなが含まれるか
文字列にひらがなが含まれているかを判定するには、正規表現を使用します。ひらがなのUnicode範囲を指定して検索します。
if re.search(r'[\u3040-\u309f]', s):
print("文字列にひらがなが含まれています")
このコードは、s
にUnicode範囲 \u3040
から \u309f
の文字(ひらがな)が含まれている場合に “文字列にひらがなが含まれています” と表示します。
文字列にカタカナが含まれるか
文字列にカタカナが含まれているかを判定するには、正規表現を使用します。カタカナのUnicode範囲を指定して検索します。
if re.search(r'[\u30a0-\u30ff]', s):
print("文字列にカタカナが含まれています")
このコードは、s
にUnicode範囲 \u30a0
から \u30ff
の文字(カタカナ)が含まれている場合に “文字列にカタカナが含まれています” と表示します。
文字列にアルファベットが含まれるか
文字列にアルファベットが含まれているかを判定するには、正規表現を使用します。
if re.search(r'[a-zA-Z]', s):
print("文字列にアルファベットが含まれています")
このコードは、s
に小文字または大文字のアルファベットが含まれている場合に “文字列にアルファベットが含まれています” と表示します。
文字列に数字が含まれるか
文字列に数字が含まれているかを判定するには、正規表現を使用します。
if re.search(r'\d', s):
print("文字列に数字が含まれています")
このコードは、s
に数字(0-9)が含まれている場合に “文字列に数字が含まれています” と表示します。
文字列に記号が含まれるか
文字列に記号が含まれているかを判定するには、正規表現を使用します。記号の範囲を指定して検索します。
if re.search(r'[!-/:-@[-`{-~]', s):
print("文字列に記号が含まれています")
このコードは、s
に特定の範囲の記号が含まれている場合に “文字列に記号が含まれています” と表示します。
これらの方法を使って、文字列の内容を簡単に判定することができます。Pythonの正規表現(reモジュール)を活用することで、複雑な判定もシンプルに行うことができます。