Python の文字列に単語が存在するかどうかを確認する

Fariba Laiq 2023年6月21日
  1. in 演算子を使用して、Python の文字列に単語が存在するかどうかを確認する
  2. String.find() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する
  3. String.index() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する
  4. search() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する
Python の文字列に単語が存在するかどうかを確認する

今日の天気はとてもいいという文字列があるとします。 "weather" という単語が文字列に含まれているかどうかを確認したい場合は、複数の方法で確認できます。

このガイドでは、in 演算子、string.find() メソッド、string.index() メソッド、および 正規表現(RegEx) について説明します。

in 演算子を使用して、Python の文字列に単語が存在するかどうかを確認する

リスト、タプル、配列などの文字列またはシーケンス内の単語を検索する最も簡単な方法の 1つは、in 演算子を使用することです。 条件で使用するとブール値を返します。

true または false のいずれかです。 指定された単語が存在する場合、ステートメントは true と評価されます。 単語が存在しない場合は、false と評価されます。

この演算子は、大文字と小文字を区別します。 次のコードで Fun という単語を見つけようとすると、出力に Fun not found というメッセージが表示されます。

コード例:

# Python 3.x
sentence = "Learning Python is fun"
word = "fun"
if word in sentence:
    print(word, "found!")
else:
    print(word, "not found!")

出力:

#Python 3.x
fun found!

大文字と小文字を気にせずに文字列内の単語をチェックしたい場合は、メインの文字列と検索する単語を小文字に変換する必要があります。 次のコードでは、Fun という単語をチェックします。

コード例:

# Python 3.x
sentence = "Learning Python is fun"
word = "Fun"
if word.lower() in sentence.lower():
    print(word, "found!")
else:
    print(word, "not found!")

出力

#Python 3.x
Fun found!

String.find() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する

find() メソッドを文字列で使用して、特定の単語をチェックできます。 指定された単語が存在する場合、メイン文字列の単語の 一番左 または 開始インデックス を返します。

それ以外の場合は、単純にインデックス –1 を返します。 find() メソッドは spaces のインデックスもカウントします。 次のコードでは、9 が Python の開始インデックス、文字 P のインデックスであるため、出力 9 を取得します。

このメソッドもデフォルトで大文字と小文字が区別されます。 python という単語をチェックすると、-1 が返されます。

コード例:

# Python 3.x
string = "Learning Python is fun"
index = string.find("Python")
print(index)

出力:

#Python 3.x
9

String.index() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する

index() は find() メソッドと同じです。 このメソッドは、メイン文字列のサブ文字列の最小インデックスも返します。

唯一の違いは、指定された単語または部分文字列が存在しない場合、find() メソッドはインデックス –1 を返し、index() メソッドは例外 (value error exception) を発生させることです。

コード例:

# Python 3.x
mystring = "Learning Python is fun"
print(mystring.index("Python"))

出力:

#Python 3.x
9

次に、文に存在しない単語を見つけようとします。

# Python 3.x
mystring = "Learning Python is fun"
print(mystring.index("Java"))

出力:

#Python 3.x
ValueError                                Traceback (most recent call last)
<ipython-input-12-544a99b6650a> in <module>()
      1 mystring = "Learning Python is fun"
----> 2 print(mystring.index("Java"))

ValueError: substring not found

search() メソッドを使用して、Python の文字列に単語が存在するかどうかを確認する

search() メソッドによる文字列のパターン マッチングにより、特定の単語をチェックできます。 このメソッドは re モジュールで利用できます。

ここでのre正規表現を表します。 検索メソッドは 2つの引数を受け入れます。

最初の引数は検索する単語で、2 番目の引数は文字列全体です。 ただし、この方法は他の方法よりも遅くなります。

コード例:

# Python 3.x
from re import search

sentence = "Learning Python is fun"
word = "Python"
if search(word, sentence):
    print(word, "found!")
else:

    print(word, "not found!")

出力:

#Python 3.x
Python found!
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python String