【Python入門】文字列の部分一致を判定する方法|初心者でもわかる解説と実用例

【Python入門】文字列の部分一致を判定する方法|初心者でもわかる解説と実用例 python

Pythonで文字列の一部を検索したいとき、どうすればよいのでしょうか。例えば「あるキーワードが文章の中に含まれているか」を判定する処理は、実務でもよく使われます。本記事では、部分一致を判定する方法を初心者向けにわかりやすく解説します。

Pythonで文字列の部分一致を判定する基本

最もシンプルな方法は、in演算子を使う方法です。これはPythonの標準的な記法で、可読性が高く直感的に理解できます。


text = "I love Python programming"
if "Python" in text:
    print("部分一致しました!")

このコードは「Python」という文字列が文章中に含まれているかを判定します。結果がTrueなら部分一致あり、Falseなら一致しないという仕組みです。短いコードで書けるため、初心者でも安心して使えます。

startswith() と endswith() を使う方法

部分一致を「文章の先頭」や「末尾」に限定したい場合は、startswith()endswith()メソッドを活用します。これにより、より具体的な条件で判定できます。


text = "python_tutorial.pdf"
if text.endswith(".pdf"):
    print("PDFファイルです")

この例では、ファイル名が.pdfで終わっているかをチェックしています。逆に、先頭を判定したいときはstartswith()を使いましょう。こうした方法は、ファイル処理やURL判定でよく利用されます。

find() や index() を使った方法

find()メソッドは、検索した文字列が見つかった位置(インデックス)を返します。見つからない場合は-1を返すため、条件分岐に利用できます。


text = "Data analysis with Python"
pos = text.find("Python")
if pos != -1:
    print(f"見つかりました!位置: {pos}")

index()も同様ですが、見つからなかった場合にValueErrorを発生させます。そのため、安全に使うならfind()の方が初心者にはおすすめです。

正規表現を使った部分一致

より高度な検索を行いたい場合は、reモジュールを使います。正規表現は強力で、複雑なパターンを柔軟に判定できます。


import re

text = "My email is example@test.com"
if re.search(r"\w+@\w+\.\w+", text):
    print("メールアドレスが含まれています")

この例では、文字列にメールアドレスのようなパターンが含まれているかを判定しています。シンプルな部分一致ならinで十分ですが、条件が複雑になるときは正規表現が活躍します。

応用テクニック

大文字小文字を区別せずに判定

Pythonの文字列判定はデフォルトで大文字小文字を区別します。しかし、実務では「Python」と「python」を同じとみなしたい場合があります。そのときは.lower().upper()を活用しましょう。


text = "PYTHON is great!"
if "python" in text.lower():
    print("部分一致しました(大文字小文字を無視)")

こうすることで、入力の表記ゆれにも対応できます。Webフォームやユーザー入力の検証に便利です。

リストの中から部分一致を探す

単一の文字列だけでなく、複数の候補の中から部分一致を探したい場面もあります。その場合はループを使って判定します。


keywords = ["Python", "Django", "Flask"]
text = "I am learning Django framework"

for word in keywords:
    if word in text:
        print(f"{word} が含まれています")

この方法を使うと、キーワード検索やログ解析など幅広い用途に応用できます。

よくあるエラーと注意点

Noneとの比較ミス

文字列検索でfind()を使う場合、戻り値が-1になる点を忘れると、条件分岐で誤動作することがあります。Noneが返ってくるわけではないので注意しましょう。

正規表現のパフォーマンス

正規表現は便利ですが、大量のデータを処理する場合は速度が低下する可能性があります。単純な検索ならinfind()を優先的に使うのがおすすめです。

実用例:ファイル名やログの検索

部分一致は日常的なプログラムでも活用されます。例えば、ログファイルから特定のエラーを探す場合や、ファイル名に含まれる特定の拡張子をチェックする場合です。


log = "2025-08-22 ERROR: File not found"
if "ERROR" in log:
    print("エラーログを検出しました")

こうした単純なチェックでも、システム監視やテキスト解析に応用できます。

より詳しい情報は公式ドキュメントも参考にしてください。
Python公式ドキュメント: 文字列メソッド

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

Pythonで文字列の部分一致を判定する方法は、in演算子が最も簡単で実用的です。さらにfind()や正規表現を使えば、より高度な検索も可能です。目的に応じて方法を選べば、文字列処理がぐっと楽になります。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント

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