【初心者向け】Pythonで文字列内に単語を探す方法|in・find・正規表現まで徹底ガイド

Python

Pythonで文字列中に特定の単語が含まれているかを調べるには、in演算子、find()など、いくつかの方法があります。

この記事では、初学者の方がつまずかないよう、「仕組みと書き方」「違い」「ケース非依存」「複数回検出」などを丁寧に解説します。

スポンサーリンク
スポンサーリンク

find()の型

#find()の型
"文字列".find("検索文字"[,開始位置指定,終了位置指定])

「”検索文字”」で検索したい文字を指定します。開始位置と終了位置は必ず範囲を指定する必要はありません。

in: Pythonで単語(部分文字列)が存在するか調べる基本

text = "Hello, Python programming!"
if "Python" in text:
    print("Found!")
else:
    print("Not found.")

in 演算子は見つかれば True、見つからなければ False を返す、直感的な方法です。

特定条件だけ調べたいときに便利です。

find: 位置(インデックス)を取得する

s = "Hello, Python!"
idx = s.find("Python")
print(idx)  # 7
print(s.find("Java"))  # -1
  • 見つかれば最初の位置(0起点)を返し、見つからなければ -1 を返します。
  • index()は使い方は似ていますが、見つからない場合に ValueError を出す点が異なります。
try:
    s.index("Java")
except ValueError:
    print("Not found (index throws error).")

大文字・小文字を区別せず(ケース非依存)にするには

if "python" in text.lower():
    print("Detected (case-insensitive).")

文字列と検索語を両方 lower() にすることで、”Python” も “python” として扱えます 。

re: 正規表現で高度な検索

import re
matches = re.findall(r"\b[aA]pple\b", text)
print(matches)  # ['apple', 'apple', 'apple']

正規表現(re モジュール)を使うことで、単語境界などの柔軟な検索が可能です。

その他、findを用いた使用例

項目内容
txtファイルから任意の文字列を探索する方法「.txt」拡張子に書かれている文字列からfindを用いて任意の文字列を探索するプログラムを解説しています。
タイトルとURLをコピーしました