Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの正規表現で変数を使う方法をわかりやすく解説

Pythonの正規表現(reモジュール)では、パターン文字列を作る際に文字列連結f文字列を利用することで、変数の値をパターンの中に組み込むことができます。

ただし、変数に含めてよいのは通常の文字列だけです。特殊文字やメタ文字、正規表現そのものが含まれると、意図しないマッチやエラーの原因になります。変数の内容が不定の場合は、re.escape() でエスケープしてから使うと安全です。

サンプルコード

次のコードは、文字列連結によって変数を正規表現パターンに埋め込む例です。

import re

s = 'I love books'
var_name = 'love'
result = re.search('(.+)' + var_name + '(.+)', s)
print(result)

var_name = 'hate'
s2 = 'I hate books'
result = re.search('(.+)' + var_name + '(.+)', s2)
print(result)

実行結果

このコードを実行すると、次のような出力が得られます。

<_sre.SRE_Match object at 0x000000000472FF10>
<_sre.SRE_Match object at 0x0000000004881030>

ポイント解説

  • re.search() は、パターンが見つかった場合に Matchオブジェクト を返し、見つからない場合は None を返します。
  • パターン '(.+)' + 変数 + '(.+)' のように連結することで、変数の前後の任意の文字列も同時にキャプチャできます。

なお、Python 3.6以降ではf文字列を使って、より読みやすく記述することも可能です。

result = re.search(f'(.+){var_name}(.+)', s)

このように、変数を活用した正規表現は検索キーワードを動的に変更したい場合などに非常に便利です。ただし、ユーザー入力などをそのままパターンに埋め込むと危険なので、必ずエスケープ処理を行うことをおすすめします。

  1. Pythonで正規表現を使って空白文字にマッチさせる方法を解説

    Pythonのreモジュールを使うと、正規表現によって文字列内の空白文字(スペース、タブ、改行など)を簡単に検出できます。空白にマッチさせるには、正規表現パターンとして \s を使用します。以下に具体的なコード例を紹介します。例1:re.search()で最初の空白を検索する次のコードは、指定した文字列の中から最初に現れる空白を1つ検索します。import re result = re.search(r[\s], The Indian Express) print(result)実行結果<re.Match object; span=(3, 4), match= >re.search

  2. Pythonの変数入門:宣言方法と使い方を徹底解説

    本記事では、Pythonにおける変数の作成方法と基本的な使い方について、初心者にもわかりやすく解説します。 Pythonの変数とは 変数(Variable)とは、メモリ上に格納されたオブジェクトへの参照を保存するための「名前が付けられた場所」のことです。プログラムの中でデータを扱う際の基本となる概念です。 Pythonで変数を作成する際には、以下の命名ルールを守る必要があります。 変数名は英字またはアンダースコア(_)で始める必要がある 変数名を数字で始めることはできない 変数名に使用できるのは英数字とアンダースコアのみ(A-z、0-9、_) 変数名は大文字・小文字が区別される(date、D