Python
 Computer >> コンピューター >  >> プログラミング >> Python

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の正規表現について詳しく知りたい方は、公式ドキュメントを参照してください。

  1. Pythonで文字列が指定したサフィックス(接尾辞)リストのいずれかで終わるかどうかを確認する方法

    endswith()メソッドを使う方法 Pythonの文字列クラスには、endswith()メソッドが用意されています。このメソッドは、検索したい文字列のタプルを受け取り、文字列オブジェクトに対して呼び出します。以下のように使用できます。 string = core java print(string.endswith((txt, xml, java, orld))) 実行結果 True タプル内のいずれかのサフィックスで文字列が終わっていればTrueが返され、どれにも該当しなければFalseが返されます。シンプルな判定であれば、この方法が最も可読性が高くおすすめです。 正規表現(re.sea

  2. Pythonで部分文字列が文字列に含まれているか確認する方法(in演算子とfindメソッド)

    Pythonでは、ある文字列が別の文字列の部分文字列(サブストリング)として含まれているかどうかを簡単に確認できます。最も基本的な方法は、in 演算子を使うことです。in 演算子を使った判定方法in 演算子は、左辺の文字列が右辺の文字列に含まれている場合に True を、含まれていない場合に False を返します。以下はその使用例です。print(ello in hello world)実行結果:Trueこのように、ello は hello world の中に含まれているため、True が出力されます。find() メソッドで位置(インデックス)を取得する部分文字列が含まれているかどうかに加