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

Pythonで正規表現の繰り返し(量指定子)を指定する方法

Pythonのreモジュールでは、正規表現の中で「同じ文字やパターンを何回繰り返すか」を指定するために、波括弧 {} を使った量指定子(quantifier)を使用します。

例えば、「Aが3回続いた後にBが4回続く」というパターンにマッチさせたい場合は、A{3}B{4} のように記述します。以下は、そのパターンを文字列から検索するサンプルコードです。

サンプルコード

import re

foo = 'AAABBBBBB'
match = re.search(r'A{3}B{4}', foo)
if match:
    print(match.group())
else:
    print('マッチしませんでした')

実行結果

AAABBBB

この例では、re.search() が文字列 'AAABBBBBB' の中から「Aが3つ、その後にBが4つ並ぶ」部分を見つけ出し、match.group() によってマッチした部分文字列 'AAABBBB' を取得しています。元の文字列にはBが6個ありますが、パターンは最初の4個のBまでしか要求しないため、余分なBは無視されます。

主な量指定子の一覧

  • {m}:直前の要素がちょうど m 回繰り返される(例:A{3} → AAA)
  • {m,n}:m 回以上 n 回以下の繰り返し(例:A{2,4} → AA、AAA、AAAA)
  • {m}:m 回以上の繰り返し(上限なし)
  • *:0回以上の繰り返し({0} と同じ)
  • +:1回以上の繰り返し({1} と同じ)
  • ?:0回または1回の出現({0,1} と同じ)

これらの量指定子を組み合わせることで、「特定の桁数の数字」「一定の長さの英字列」など、繰り返し回数が決まっているパターンを柔軟に表現できます。また、デフォルトでは量指定子は貪欲(greedy)に動作し、できるだけ多くの文字にマッチしようとする点にも注意してください。最小限のマッチにしたい場合は、*?+? のように ? を付けて非貪欲(non-greedy)モードに切り替えることができます。

  1. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実

  2. Pythonプログラムの実行方法まとめ!IDLE・コマンドライン・PyCharmなど5つの方法を解説

    コードを書いたら、次はそれを実行して出力結果を確認する必要があります。プログラムを実行することで、書いたコードが正しく動作し、期待通りの結果が得られるかどうかをチェックできます。幸いなことに、Pythonプログラムの実行はとても簡単です。この記事では、代表的な5つの実行方法をわかりやすく解説します。IDLEで実行するPythonに標準で付属しているIDLEを使ってプログラムを実行するには、以下の手順に従います。Pythonのコードを書いて保存します。メニューから「Run > Run Module」を選択するか、キーボードのF5キーを押すだけで実行できます。IDLEは初心者にとって扱いやす