正規表現を利用して文字列を検索する

Pythonで正規表現を利用して文字列を検索するコードを紹介します。

概要

Pythonで正規表現を利用する場合はreモジュールをインポートします。成否表現のパターンは re.comple()メソッドで作成します。 文字列のマッチ判定は (パターンオブジェクト).search() メソッドを利用します。

書式

import re
p = re.compile(r'(パターン文字列)');
m = p.search('(検索文字列)');

プログラム例

コード

下記のコードを作成します。

import re

#stringText = 'ぺんぎん"オレンジ"キャンディー'
stringText = 'ぺんぎんオレンジキャンディー'
pattern = re.compile(r'".*"')

match = pattern.search(stringText)

if match:
    print(match.group())
else:
    print('みつかりませんでした')

解説

re モジュールをインポートします。

import re

検索文字列を用意します。検索文字列はstringText変数に代入します。

stringText = 'ぺんぎん"オレンジ"キャンディー'

re.compile() メソッドを呼び出し、パターン文字列からパターンオブジェクトを作成します。".*" をパターンに設定します。ダブルクォートで囲まれた文字列を検出する正規表現です。
文字列の手前に "r" の文字が記述されていますがこちらは Raw文字列の表現です。Raw文字列についてはこちららの記事を参照してください。

pattern = re.compile(r'".*"')


作成したパターンオブジェクトのsearch()メソッドを呼び出し文字列を検索します。searchメソッドの第一引数に検索する文字列を与えます。
検索結果はmatch変数に代入されます。

match = pattern.search(stringText)

検索結果のmatchオブジェクトを判定します。結果が見つからなかった場合は match の値は None になるため、「みつかりませんでした」の 文字列を出力します。結果があった場合は match の値は True になります。結果が見つかった場合は、group() メソッドの戻り値を出力して画面に結果を表示します。

if match:
    print(match.group())
else:
    print('みつかりませんでした')

実行結果

上記のコードを実行します。下図の結果が表示されます。コンソールウィンドウに検索文字列の中で 「"」で囲まれた文字列が検索され、 画面に表示されていることが確認できます。
正規表現を利用して文字列を検索する:画像1


入力文字列を「ぺんぎんオレンジキャンディー」にした場合は、下図の結果となります。

正規表現を利用して文字列を検索する:画像2

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2021-02-21
Copyright © 1995–2025 iPentec all rights reserverd.