【Python入門】正規表現のgroups()メソッドの使い方をわかりやすく解説
re.groups()メソッドとは
re.groups()メソッドは、マッチオブジェクトに含まれるすべてのサブグループ(キャプチャグループ)を、1番目からパターン内のグループ数まで順に格納したタプルとして返します。マッチに参加しなかったグループにはdefault引数で指定した値が使われ、引数を省略した場合はNoneが返されます。
なお、パターン内にグループが1つしか存在しない場合でも、戻り値は必ずタプル形式で返される点に注意してください。
基本的な使用例
>>> m = re.match(r"(\d+)\.(\d+)", "27.1835")
>>> m.groups()
('27', '1835')この例では、整数部「27」と小数部「1835」がそれぞれ2つのグループにキャプチャされ、タプルとして取得できています。
マッチしないグループがある場合の挙動
次に、小数点以下とその後の部分を任意(オプション)にしたパターンを見てみましょう。この場合、すべてのグループがマッチに参加するとは限らず、参加しなかったグループはdefault引数を指定しない限りNoneになります。
>>> m = re.match(r"(\d+)\.?(\d+)?", "27")
>>> m.groups() # 第2グループはデフォルトでNone
('27', None)
>>> m.groups('0') # default引数を指定すると第2グループは'0'になる
('27', '0')このように、groups()メソッドにdefault引数を渡すことで、マッチに失敗したグループに対して任意の初期値を設定できます。数値処理などでNoneを避けたい場合に便利な機能です。
-
Pythonのzfill()メソッドとは?文字列の先頭をゼロ埋めする方法を解説
Pythonのzfill()メソッドとはPythonのzfill()メソッドは、文字列の左側(先頭)をゼロ「0」で埋めるための組み込みメソッドです。桁数を揃えたい場合や、ID・日付・数値コードなどを一定のフォーマットに整形したいときに非常に便利です。基本的な使い方は以下のとおりです。引数には最終的な文字列の長さ(幅)を指定します。>>> 25.zfill(6) 000025この例では、元の文字列「25」が2文字なので、指定した幅6になるまで先頭にゼロが4つ追加され、「000025」という結果が得られます。zfill()メソッドのポイント引数に指定した幅より元の文字列が短い場合
-
Pythonの正規表現で文字列が英数字のみかどうかを判定する方法
正規表現を使った英数字チェックの基本Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。この正規表現の意味は以下の通りです。^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証実行例>>> import