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

Pythonで文字列を後ろから検索するには?rfind()メソッドの使い方を解説

Pythonで文字列を末尾(右側)から検索したい場合は、rfind() メソッドを使用します。rfind() は文字列の終わりに向かって部分文字列を探し、見つかった場合は最後に出現した位置のインデックスを返します。見つからなかった場合は -1 を返します。

>>> "CocacolaPepsi".rfind('cola')
4
>>> 'CocacolaPepsi'.rfind('coke')
-1

上記の例では、"CocacolaPepsi" の中に 'cola' が含まれているため、その最後の出現位置であるインデックス 4 が返されています。一方、存在しない 'coke' を検索した結果は -1 です。

rfind() と find() の違い

find() は文字列の先頭から検索して最初に出現する位置を返すのに対し、rfind()末尾から検索して最後に出現する位置を返します。どちらも部分文字列が見つからない場合は -1 を返す点が共通しています。

>>> s = "abcabcabc"
>>> s.find('abc')
0
>>> s.rfind('abc')
6

検索範囲を指定する

rfind() には開始位置と終了位置を引数として渡すことができ、特定の範囲内だけを検索対象にすることも可能です。

>>> "banana".rfind('a', 0, 5)
3

見つからない場合に例外を出したいなら rindex()

部分文字列が見つからなかったときに -1 ではなく例外(ValueError)を発生させたい場合は、rindex() メソッドを使用します。挙動は rfind() とほぼ同じですが、エラー処理を明示的に行いたい場面で便利です。

>>> 'CocacolaPepsi'.rindex('coke')
Traceback (most recent call last):
ValueError: substring not found
  1. Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】

    Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>

  2. Pythonで文字列が指定した接尾辞(サフィックス)で終わっているかどうかを確認する方法

    endswith()メソッドを使う方法Pythonでは、文字列クラスに用意されている endswith() メソッドを使うことで、文字列が特定の接尾辞(サフィックス)で終わっているかどうかを簡単に確認できます。このメソッドは、検索したい接尾辞の文字列を引数として受け取り、文字列オブジェクトに対して呼び出します。以下のように使用します。string = C:/Users/TutorialsPoint1/~.py print(string.endswith(.py))実行結果:Trueこの例では、ファイルパスの文字列が .py という拡張子で終わっているため、True が返されます。もし終わってい