Pythonの正規表現における繰り返し(量指定子)とは?+・*・?の使い方を実例付きで解説
Pythonの正規表現では、パターンの繰り返しを指定するための「量指定子」と呼ばれる記号を使うことで、より柔軟で強力な文字列マッチングが可能になります。ここでは、最もよく使われる3つの量指定子「+」「*」「?」について解説します。
繰り返しを指定する主な量指定子
+(プラス):直前のパターンが1回以上繰り返される場合にマッチします。例えばi+は「1個以上の i」に一致します。*(アスタリスク):直前のパターンが0回以上繰り返される場合にマッチします。対象が存在しなくても一致とみなされます。?(クエスチョンマーク):直前のパターンが0回または1回出現する場合にマッチします。省略可能な要素を表現したいときに便利です。
コード例
次のコードは、「he+」というパターンを使って、文字列中の「h」に続く1個以上の「e」を検索する例です。
import re
s = "sheeeeeeeeple"
match = re.search(r"he+", s)
print(match.group())
このコードでは、re.search() が文字列 s の中からパターン r"he+" に最初に一致する部分を探します。「e」が9個並んでいるため、+ は可能な限り長く連続する「e」をすべて取得します。
実行結果
上記のコードを実行すると、以下の出力が得られます。
heeeeeeee
このように、+ を使うことで「同じ文字の繰り返し」をまとめてマッチさせることができます。もしパターンを r"he*" に変更すれば、「h」だけで成立する部分にもマッチし、r"he?" にすれば「h」または「he」のみにマッチするなど、量指定子の違いによってマッチ範囲が大きく変わります。用途に応じて適切な量指定子を選ぶことが、正確なテキスト処理の鍵となります。
-
Pythonの予約キーワード(予約語)とは?一覧と確認方法をわかりやすく解説
予約語(キーワード)とは予約語(reserved words)は「キーワード」とも呼ばれ、言語仕様の中であらかじめ意味と構文が定義された特別な単語のことです。条件分岐やループ処理といったプログラミング命令を記述する際には、必ずこれらのキーワードを使用します。重要なポイントとして、予約語は変数名や関数名など、他のプログラミング要素の識別子(identifier)として使用できません。例えば「def」や「import」という名前の変数を作成しようとすると、SyntaxError(構文エラー)が発生します。Python 3の予約キーワード一覧以下は、Python 3で定義されている予約キーワードの一
-
Pythonの正規表現で文字列が英数字のみかどうかを判定する方法
正規表現を使った英数字チェックの基本Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。この正規表現の意味は以下の通りです。^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証実行例>>> import