Python|文字列の検索

1. はじめに

Pythonで文字列を扱う場面は非常に多く、その中でも「文字列の検索」は実務・学習問わずよく使われる基本的な操作です。

たとえば「特定の単語が文章に含まれているか確認したい」「ファイル内のキーワードを見つけたい」といったシーンで役立ちます。

本記事では、Pythonにおける文字列検索の基本的な方法から、実務でも使える応用テクニック、注意点までを丁寧に解説します。

 

2. Pythonにおける文字列検索の基本

2-1. in演算子での検索

in演算子を使うと、文字列内に特定の文字列が含まれているかどうかを簡単に確認できます。

text = "Pythonは楽しい言語です"
if "楽しい" in text:
    print("キーワードが見つかりました")
else:
    print("キーワードは含まれていません")

実行結果:

キーワードが見つかりました

2-2. str.find()メソッド

find()は、検索したい文字列が最初に見つかった位置(インデックス)を返します。見つからなければ-1を返します。

text = "Pythonで文字列を検索します"
index = text.find("文字列")
print(index)

実行結果:

7

2-3. str.index()メソッド

index()find()と似ていますが、見つからない場合にValueErrorを発生させる点が異なります。

text = "Pythonプログラミング"
print(text.index("ミング"))

実行結果:

10

 

3. よくある使い方・応用例

3-1. 特定の単語を含むかどうかをチェック

ユーザー入力やログデータなどから、キーワードが含まれているかどうかを判定する処理は非常に実用的です。

text = "本日の売上は1000円です"
if "売上" in text:
    print("売上情報が含まれています")

実行結果:

売上情報が含まれています

3-2. ファイルから検索キーワードを探す

ファイルを読み込み、行単位で検索キーワードが含まれているかを確認する例です。

with open("sample.txt", "r", encoding="utf-8") as f:
    for line in f:
        if "エラー" in line:
            print("エラー行:", line.strip())

実行結果:

エラー行: エラー: データベースに接続できません

3-3. 複数キーワードの検索

リストを使えば、複数のキーワードを一括で検索することもできます。

text = "今日はPythonの勉強をしています"
keywords = ["Python", "Java", "C++"]
for kw in keywords:
    if kw in text:
        print(f"{kw} が含まれています")

実行結果:

Python が含まれています

 

4. 注意点・エラー対策

4-1. find()とindex()の違いに注意

find()は見つからない場合に-1を返しますが、index()は例外を発生させます。用途によって使い分けが必要です。

4-2. 大文字・小文字の違いに注意

Pythonでは検索時に大文字・小文字を区別するため、期待通りに一致しないことがあります。

text = "Python"
print("python" in text)  # Falseになります

実行結果:

False

すべて小文字に変換して比較する方法が有効です。

text = "Python"
print("python" in text.lower())

実行結果:

True

4-3. 正規表現を使いたい場合はreモジュール

より柔軟な検索をしたい場合は正規表現を使いましょう。

import re
result = re.search(r"\d+円", "本日の売上は1000円です")
if result:
    print("金額を発見:", result.group())

実行結果:

金額を発見: 1000円

 

5. まとめ

  • in演算子による基本的な検索
  • find()index()の違いと活用
  • ファイル検索や複数語検索の応用例
  • 正規表現による高度な検索方法

文字列検索はPythonの中でも非常に頻出の機能であり、ログ解析、データ処理、自然言語処理など、さまざまな場面で活用されます。

学習のコツ: 小さな文字列で試しながらprint()で結果を確認することで、動作理解が深まります。

ぜひ実務やプログラミング学習に活用してみてください。

タイトルとURLをコピーしました