Pythonで文字列が指定した接尾辞(サフィックス)で終わっているかどうかを確認する方法
endswith()メソッドを使う方法
Pythonでは、文字列クラスに用意されている endswith() メソッドを使うことで、文字列が特定の接尾辞(サフィックス)で終わっているかどうかを簡単に確認できます。このメソッドは、検索したい接尾辞の文字列を引数として受け取り、文字列オブジェクトに対して呼び出します。
以下のように使用します。
string = 'C:/Users/TutorialsPoint1/~.py'
print(string.endswith('.py'))実行結果:
True
この例では、ファイルパスの文字列が .py という拡張子で終わっているため、True が返されます。もし終わっていなければ False が返ります。
正規表現(reモジュール)を使う方法
もうひとつの方法として、re モジュール(正規表現)を使うやり方があります。re.search() 関数に「接尾辞 + $」というパターンを渡すことで、文字列の末尾との一致を調べられます。
正規表現において $ は「行末」を意味する特殊文字です。そのため、接尾辞で終わるかどうかを判定したい場合は、次のように記述します。
import re
string = 'C:/Users/TutorialsPoint1/~.py'
print(bool(re.search('py$', string)))実行結果:
True
bool()で変換する理由
re.search() は、マッチが見つかった場合はマッチオブジェクトを、見つからなかった場合は None を返します。戻り値は真偽値そのものではないため、結果を True / False として明確に扱いたい場合は、bool() を使って変換すると便利です。
どちらの方法を選ぶべきか
単純に接尾辞を確認したいだけであれば、endswith() メソッドが最もシンプルで読みやすく、処理速度も速いため推奨されます。正規表現を使う方法は、「複数の拡張子のいずれかに一致させたい」「大文字小文字を無視したい」など、より柔軟な条件が必要な場合に有効です。
Pythonの正規表現について詳しく知りたい方は、公式ドキュメントを参照してください。
-
Pythonで文字列が指定したサフィックス(接尾辞)リストのいずれかで終わるかどうかを確認する方法
endswith()メソッドを使う方法 Pythonの文字列クラスには、endswith()メソッドが用意されています。このメソッドは、検索したい文字列のタプルを受け取り、文字列オブジェクトに対して呼び出します。以下のように使用できます。 string = core java print(string.endswith((txt, xml, java, orld))) 実行結果 True タプル内のいずれかのサフィックスで文字列が終わっていればTrueが返され、どれにも該当しなければFalseが返されます。シンプルな判定であれば、この方法が最も可読性が高くおすすめです。 正規表現(re.sea
-
Pythonで部分文字列が文字列に含まれているか確認する方法(in演算子とfindメソッド)
Pythonでは、ある文字列が別の文字列の部分文字列(サブストリング)として含まれているかどうかを簡単に確認できます。最も基本的な方法は、in 演算子を使うことです。in 演算子を使った判定方法in 演算子は、左辺の文字列が右辺の文字列に含まれている場合に True を、含まれていない場合に False を返します。以下はその使用例です。print(ello in hello world)実行結果:Trueこのように、ello は hello world の中に含まれているため、True が出力されます。find() メソッドで位置(インデックス)を取得する部分文字列が含まれているかどうかに加