Python 文字列 find() メソッドと例

⚡ スマートサマリー

Python string find() は、文字列内で部分文字列が最初に出現する位置のインデックスを返す組み込みメソッドです。部分文字列が存在しない場合は -1 を返し、例外を回避します。

  • 🔍 構文: find() 関数は、部分文字列と、検索範囲を制限するためのオプションの開始インデックスと終了インデックスを受け取ります。
  • 🎯 最初の試合: find() は、左から右にスキャンして、最初に出現した箇所の最小インデックスを返します。
  • 見つかりません: find() は、部分文字列が存在しない場合、エラーを発生させる代わりに -1 を返します。
  • 🔁 rfind(): rfind() メソッドは、右側から検索して最も高いインデックスを返します。
  • ⚠️ 索引(): index() メソッドは find() メソッドと同様に動作しますが、部分文字列が見つからない場合は ValueError を発生させます。
  • 🤖 AI支援: AIコーディングアシスタントは、find()ロジックを生成し、NLPテキストパイプラインにおける部分文字列検索を強化します。

Python 文字列検索()

何ですか Python 文字列 find()?

Python 文字列検索() は、 Python 指定された文字列内で部分文字列が最初に出現するインデックスを見つけるライブラリです。find() 関数は、指定された部分文字列が指定された文字列に存在しない場合、例外をスローする代わりに -1 を返します。 Pythonの最もよく使われる 文字列メソッド テキストの位置を特定するため。

の構文 Python 文字列検索()

の基本的な構文 Python find() 関数は次のとおりです。

string.find(substring,start,end)

find() メソッドのパラメータ

find() 関数の 3 つのパラメータは次のとおりです。 Python:

  • サブストリング: 指定された文字列内で検索したい部分文字列。
  • start(オプション)部分文字列の検索を開始する開始値。デフォルト値は0です。
  • end(オプション)部分文字列の検索を終了する終了値。デフォルトでは、文字列の長さが設定されます。

デフォルト値を使用した find() メソッドの例

渡されたパラメータ Python find() メソッドは、部分文字列、つまり検索したい文字列に、開始位置と終了位置を加えたものを指定します。開始位置のデフォルト値は 0 で、終了位置は文字列の長さです。

この例では、find() メソッドを Python デフォルト値で。

find() メソッドは、部分文字列を検索し、その部分文字列が最初に出現する位置を返します。部分文字列が指定された文字列内に複数回出現する場合でも、最初に出現した位置(インデックス)が返されます。

例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

出力:

The position of Tutorials is at: 12

start 引数を使用した find() の例

指定された文字列内で部分文字列を検索し、検索開始位置を指定できます。この目的には、start パラメータを使用できます。

以下の例では、開始位置を 20 と指定し、find() メソッドを Python 検索は20番目の位置から開始されます。ここで、終了位置は文字列の長さになるため、20番目の位置から文字列の末尾まで検索が行われます。

例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

出力:

The position of Tutorials is at 48

開始引数と終了引数を使用した find() の例

開始パラメータと終了パラメータを使用することで、文字列全体を検索する代わりに、検索範囲を限定することができます。

例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

出力:

The position of Tutorials is at 12

文字列内の指定された部分文字列の位置を検索する find() メソッドの例

find() 関数は、部分文字列が最初に現れる位置のインデックスを見つけるのに役立ちます。部分文字列が指定された文字列に存在しない場合は -1 を返します。以下の例は、文字列が存在する場合のインデックスと、検索対象の部分文字列が見つからない場合の -1 を示しています。

例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

出力:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python 文字列rfind()

その Python rfind() 関数は find() 関数と似ていますが、唯一の違いは、rfind() は指定された部分文字列の最高インデックスを返すのに対し、find() は最低インデックス、つまり最初のインデックスを返す点です。部分文字列が存在しない場合は、rfind() と find() の両方とも -1 を返します。

以下の例では、「Meet」という文字列があります。 Guru99チュートリアルサイト。最高のサイト Python チュートリアル!」と表示され、find() と rfind() を使用して部分文字列 Tutorials の位置を探します。部分文字列 Tutorials は文字列中に 2 回出現します。

以下は、find() と rfind() の両方が使用される例です。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

出力:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

出力結果から、find() は最初に見つかった Tutorials 部分文字列のインデックスを返すのに対し、rfind() は Tutorials 部分文字列の最後のインデックスを返すことがわかります。

Python 文字列インデックス()

その Python string index() は、find() と同様に、指定された部分文字列の位置を返す関数です。両者の唯一の違いは、index() は部分文字列が文字列内に存在しない場合に例外をスローするのに対し、find() は -1 を返す点です。

以下は、index() と find() の動作を示す実際の例です。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

出力:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

find() と index() の両方で同じ位置が得られます。指定された部分文字列が文字列に含まれていない場合の例を見てみましょう。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

出力:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

上記の例では、部分文字列「test」の位置を探そうとしています。部分文字列は指定された文字列には含まれていないため、find() を使用すると位置は -1 になりますが、index() を使用すると上記のようにエラーが発生します。

部分文字列の出現回数の合計を見つけるには

指定された文字列内で部分文字列が何回出現したかを調べるには、find() 関数を使用します。 Pythonfind() の startIndex パラメータを使用して、for ループを使用して文字列を 0 から文字列の末尾までループします。

変数 startIndex と count は 0 に初期化されます。for ループ内で、startIndex を 0 として find() 関数を使用して、指定された文字列内に部分文字列が存在するかどうかを確認します。

find() から返される値が -1 でない場合、startIndex は文字列が見つかったインデックスに更新され、count の値も増加します。

実例は次のとおりです。

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

出力:

The total count of substring test is:  6

»詳細 Python 文字列分割()

よくあるご質問

はい。find() は部分文字列と完全に一致するため、「Hello」.find(「h」) は -1 を返し、「Hello」.find(「H」) は 0 を返します。大文字小文字を区別しない検索が必要な場合は、最初に lower() または upper() で文字列を変換してください。

in演算子は、部分文字列が存在するかどうかを示すためにTrueまたはFalseのみを返します。find()はさらに、最初に一致した部分の正確なインデックスを返します。部分文字列が存在しない場合は-1を返します。

はい。find() は負の開始インデックスと終了インデックスを受け入れます。これは文字列の末尾から数えます。たとえば、「Guru99”.find(“9”, -2) は最後の 2 文字のみを検索し、その位置を返します。

str.find() メソッドは、一度に 1 つの一致箇所を検出します。1 回の呼び出しですべての一致箇所を検出するには、re モジュールを使用します。re.findall() は一致するすべての部分文字列を返し、re.finditer() は各開始位置を含む一致オブジェクトを返します。

find() メソッドは文字列専用のメソッドなので、リストに対して呼び出すと AttributeError が発生します。リストまたはタプル内の項目を検索するには、代わりに index() メソッドを使用してください。index() メソッドは、最初に一致した項目の位置を返します。

はい。単純な部分文字列検索であれば、find() 関数は C 言語で実装されており、正規表現をコンパイルするよりも高速に動作します。パターン、ワイルドカード、または複数の一致が必要な場合にのみ、re モジュールを使用してください。

機械学習や自然言語処理において、find() 関数はテキストのクリーニングとトークン化を行いながら、キーワード、タグ、区切り文字などを特定します。部分文字列が存在するかどうか、またその位置を検出することで、特徴量の構築やモデル入力の解析に役立ちます。

はい。GitHub Copilotは、目的を説明する短いコメントからfind()、rfind()、index()の呼び出しを自動補完します。Agentic AIツールはさらに進んで、検索ロジックの記述、開始引数と終了引数の追加、テストの実行まで行います。