Pythonで正規表現を用いてテキストファイルからパターンを検索する方法

この記事では、Pythonを用いてテキストファイルから特定のパターンを検索する方法について詳しく解説します。具体的なコード例とその解説、応用例を含めています。

目次

はじめに

テキストファイルの中から特定のパターンを見つけ出すためには、正規表現が非常に便利です。Pythonの`re`ライブラリを使うことで、このようなタスクを簡単かつ効率的に実行できます。

基本的なコード例

最初に簡単な例から見ていきましょう。


# reライブラリをインポート
import re

# テキストファイルを読み込む
with open('sample.txt', 'r') as f:
    content = f.read()

# 正規表現パターンをコンパイル
pattern = re.compile(r'\bPython\b')

# パターンにマッチする全ての出現箇所を検索
matches = pattern.findall(content)

# 結果を出力
print(matches)

コード解説

1. `re` モジュールをインポート: Pythonの正規表現を扱うためのライブラリです。
2. テキストファイルの読み込み: `with open()` でファイルを安全に開き、`read()` で内容を読み込みます。
3. 正規表現パターンのコンパイル: `re.compile()` を使用して正規表現パターンをコンパイルします。
4. `findall()`: テキスト中でパターンにマッチする全ての文字列をリストとして返します。

応用例

それでは、いくつかの応用例について解説します。

応用例1: 複数のパターンを検索

単一ではなく、複数のキーワードを検索するケースもあります。その際には以下のようにコードを書くことができます。


pattern = re.compile(r'\bPython\b|\bJava\b')
matches = pattern.findall(content)
print(matches)

応用例2: 大文字・小文字を無視

大文字・小文字を無視して検索するためには、`re.IGNORECASE`フラグを使用します。


pattern = re.compile(r'\bpython\b', re.IGNORECASE)
matches = pattern.findall(content)
print(matches)

応用例3: パターンの位置情報を取得

`finditer()`メソッドを使用すると、マッチしたパターンの位置情報も取得できます。


matches = pattern.finditer(content)
for match in matches:
    print(match.span())

まとめ

Pythonの`re`ライブラリを使ってテキストファイルから特定のパターンを検索する方法について解説しました。基本的な検索から、複数のキーワードを検索する方法、大文字・小文字を無視する方法、マッチしたパターンの位置情報を取得する方法など、多様なケースに対応できます。

コメント

コメントする

目次