Pythonの正規表現構文をわかりやすく解説!基本の仕組みと主な構文要素
正規表現とは?
正規表現(Regular Expression)とは、文字列の中から特定のパターンを検索・置換するために用いられる、特殊な記号と文字の組み合わせです。テキスト処理やログ解析、データクレンジングなど、さまざまな場面で活用されています。
Python正規表現を構成する2種類の文字
Pythonの正規表現構文は、主に以下の2種類の文字で構成されます。
1. メタ文字(Meta Characters)
メタ文字とは、特別な意味を持つ記号のことです。ワイルドカードにおける「*」のように、通常の文字としてではなく、パターンを表現するための役割を果たします。代表的なメタ文字には以下のようなものがあります。
- .(ドット):任意の1文字に一致
- *(アスタリスク):直前の文字の0回以上の繰り返しに一致
- +(プラス):直前の文字の1回以上の繰り返しに一致
- ?(クエスチョンマーク):直前の文字が0回または1回出現することに一致
- ^:行頭に一致
- $:行末に一致
2. リテラル(Literals)
リテラルとは、「a」「b」「1」「2」のように、その文字自体に一致する普通の文字のことです。メタ文字以外の英数字や一部の記号は、基本的にリテラルとして扱われます。
Python正規表現で使われる主な構文要素
Pythonの正規表現では、以下のような構文的な仕組みを組み合わせることで、柔軟なパターンマッチングを実現しています。
- raw文字列(Raw Strings):「r''」のように先頭にrを付けた文字列で、バックスラッシュをそのまま解釈できるため、正規表現の記述に便利です。
- 量指定子(Quantifiers):文字の繰り返し回数を指定します(*、+、?、{n,m} など)。
- 文字クラス(Character Classes):「[abc]」のように角括弧で囲み、いずれか1文字に一致させます。
- グループ化(Groups):括弧 () を使ってパターンの一部をまとめたり、後から参照したりできます。
- 選択(Alternation):パイプ | を使って「AまたはB」という条件を表現します。
まとめ
Pythonの正規表現は、メタ文字とリテラルという2種類の文字を基本とし、raw文字列や量指定子、文字クラス、グループ、選択などの構文ツールを組み合わせることで、複雑な文字列パターンも効率的に検索・置換できます。標準ライブラリのreモジュールと併せて習得すれば、テキスト処理の幅が大きく広がります。
-
【初心者向け】Python正規表現のグループ化の仕組みと使い方を徹底解説
グループ化とは正規表現における「グループ化」とは、パターンの一部を丸括弧 () で囲むことです。これにより、単一の文字だけでなく、グループ全体に対して量指定子(*、+ など)や各種演算子を適用できるようになります。キャプチャグループと後方参照丸括弧には、部分式をひとまとめにする役割に加えて、「キャプチャグループ」を作成する働きもあります。グループ化された部分がマッチした文字列は「後方参照(バックリファレンス)」として保存され、あとから再利用することが可能です。実際の開発では、2つ以上の候補のどれかにマッチする正規表現が必要になる場面が多くあります。また、量指定子を複数の式全体に適用したいケース
-
Pythonの名前空間(Namespace)とは?仕組みをわかりやすく解説
名前空間はスコープを実現する仕組みPythonにおける名前空間(Namespace)とは、変数名とオブジェクトを対応付ける「辞書」のようなもので、スコープ(有効範囲)を実現するための基本的な仕組みです。Pythonでは、パッケージ・モジュール・クラス・関数・メソッドといったそれぞれの構成要素が、独自の名前空間を持っています。変数名の解決(どのオブジェクトを指すのかの判定)は、この名前空間の中で行われます。名前空間はいつ作られ、いつ消える?関数やモジュール、パッケージが評価され、実行が開始されるときに、そのための新しい名前空間が生成されます。これは「実行コンテキスト」と考えるとイメージしやすいで