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)このように、変数を活用した正規表現は検索キーワードを動的に変更したい場合などに非常に便利です。ただし、ユーザー入力などをそのままパターンに埋め込むと危険なので、必ずエスケープ処理を行うことをおすすめします。
-
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
-
Pythonの変数入門:宣言方法と使い方を徹底解説
本記事では、Pythonにおける変数の作成方法と基本的な使い方について、初心者にもわかりやすく解説します。 Pythonの変数とは 変数(Variable)とは、メモリ上に格納されたオブジェクトへの参照を保存するための「名前が付けられた場所」のことです。プログラムの中でデータを扱う際の基本となる概念です。 Pythonで変数を作成する際には、以下の命名ルールを守る必要があります。 変数名は英字またはアンダースコア(_)で始める必要がある 変数名を数字で始めることはできない 変数名に使用できるのは英数字とアンダースコアのみ(A-z、0-9、_) 変数名は大文字・小文字が区別される(date、D