Pythonの正規表現でワイルドカードを使うには?ドット(.)の使い方を解説
Pythonの正規表現において、ワイルドカードとして機能するのはドット(.)です。ドットは「改行文字以外の任意の一文字」にマッチする特殊文字で、パターンの中で柔軟な文字列検索を実現できます。
基本構文とサンプルコード
以下のコードでは、正規表現パターン「th.s」を使用しています。このパターンは、「th」で始まり、任意の一文字を挟んで「s」で終わる文字列にマッチします。
import re
rex = re.compile('th.s')
l = "this, thus, just, then"
print(rex.findall(l))実行結果
このコードを実行すると、以下の出力が得られます。
['this', 'thus']
解説
検索対象の文字列「this, thus, just, then」の中で、パターン「th + 任意の1文字 + s」に一致するのは「this」と「thus」の2つです。「then」は最後が「s」ではなく「n」であるためマッチせず、「just」も先頭が「th」ではないため除外されます。
注意点
- デフォルトでは、ドット(
.)は改行文字(\n)にはマッチしません。改行も含めて任意の文字にマッチさせたい場合は、re.DOTALLフラグ(またはre.S)を使用します。 - ドットそのもの(ピリオド記号)を検索したい場合は、バックスラッシュでエスケープして「
\.」と記述します。
このように、Pythonの正規表現ではドット一つでワイルドカードのような柔軟なマッチングが可能になります。部分一致や曖昧検索を行いたい場面でぜひ活用してみてください。
-
Pythonで正規表現を使って空白以外の文字にマッチさせる方法
Pythonで正規表現を使って文字列中の「空白以外の文字」を照合するには、\S(大文字のS)という特殊シーケンスを使用します。\S はスペース・タブ・改行などの空白文字以外の任意の1文字にマッチし、+ を組み合わせることで、連続した空白以外の文字列(単語など)をまとめて取得できます。re.search() を使った例次のコードは、指定した文字列から最初に見つかった空白以外の文字の連なりを検索します。import re foo = re.search(r\S+, Need for Speed 2) print(foo)出力<re.Match object; span=(0, 4), mat
-
Pythonの正規表現における修飾子(フラグ)の使い方と機能一覧
Python正規表現の修飾子とはPythonのreモジュールでは、正規表現によるパターンマッチングの挙動を制御するために、さまざまな修飾子(フラグ)を指定することができます。これらの修飾子を使うことで、大文字小文字の区別や改行の扱いなど、マッチングの動作を柔軟に変更できます。以下に、主要な修飾子とその機能を一覧形式で紹介します。1. re.I(re.IGNORECASE)大文字と小文字を区別せずにマッチングを行います。英字の大小を無視したい場合に便利です。2. re.L(re.LOCALE)現在のロケール設定に従って単語を解釈します。このフラグは、アルファベット系のグループ(\w および \W