正規表現による文字列の検索と一致
正規表現(Regular Expression)は、文字列のパターンを表現するための強力な手法です。Pythonでは、標準ライブラリのre
モジュールを使用して正規表現を扱うことができます。正規表現を使用すると、文字列の検索、置換、パターンの抽出などが柔軟に行えます。ここでは、Pythonでの正規表現の基本的な使い方と、完全一致、部分一致、前方一致、後方一致の検索について詳しく説明します。
1. 完全一致の検索
完全一致とは、指定したパターンと文字列がまったく一致することを意味します。Pythonのre
モジュールのsearch()
関数やmatch()
関数を使用して完全一致を行うことができます。以下は、search()
関数を使用した完全一致の例です。
import re pattern = r"apple" text = "I like apples." result = re.search(pattern, text) if result: print("Match found:", result.group()) else: print("No match")
このコードでは、文字列text
内でapple
というパターンが見つかるかどうかを検索しています。search()
関数は最初に見つかった一致箇所を返します。もし一致した場合は、result.group()
でその一致箇所を取得することができます。
2. 部分一致の検索
部分一致とは、指定したパターンが文字列内のどこかに含まれることを意味します。Pythonのsearch()
関数やfindall()
関数を使用して部分一致を行うことができます。以下は、search()
関数を使用した部分一致の例です。
import re pattern = r"apple" text = "I like apples and oranges." result = re.search(pattern, text) if result: print("Partial match found:", result.group()) else: print("No match")
このコードでは、文字列text
内でapple
というパターンが部分一致するかどうかを検索しています。search()
関数は最初に見つかった部分一致箇所を返します。
3. 前方一致の検索
前方一致とは、指定したパターンが文字列の先頭から一致することを意味します。Pythonのmatch()
関数を使用して前方一致を行うことができます。以下は、match()
関数を使用した前方一致の例です。
import re pattern = r"apple" text = "apple pie is delicious." result = re.match(pattern, text) if result: print("Prefix match found:", result.group()) else: print("No match")
このコードでは、文字列text
の先頭からapple
というパターンが一致するかどうかを検索しています。match()
関数は文字列の先頭からパターンが一致するかを調べます。
4. 後方一致の検索
後方一致とは、指定したパターンが文字列の末尾から一致することを意味します。Pythonのsearch()
関数やfindall()
関数を使用して後方一致を行うことができます。以下は、search()
関数を使用した後方一致の例です。
import re pattern = r"apple" text = "I like pineapple." result = re.search(pattern, text[::-1]) if result: print ("Suffix match found:", result.group()[::-1]) else: print("No match")
このコードでは、文字列text
の末尾からapple
というパターンが一致するかどうかを検索しています。search()
関数では文字列を逆にしてから検索を行い、最初に見つかった一致箇所を返します。
これらの例を参考にして、Pythonの正規表現を活用して文字列の検索を行う方法を理解してください。正規表現は非常に強力なツールであり、柔軟な文字列操作を可能にします。