※このページではアフィリエイト広告を利用しています

【Python入門】正規表現における繰り返し表記-「*」「+」「?」-

Python

ここではPythonにおける、正規表現の繰り返す表記について解説しています。

この記事の対象

  • 「*」「+」「?」の使用方法を知りたい方
  • 回数指定の方法を知りたい方
  • 最小単位での抽出方法を知りたい方
スポンサーリンク
スポンサーリンク

繰り返し表記

繰り返し表記には以下の3つがあります。

項目内容
「*」0回以上の繰り返し
「+」1回以上の繰り返し
「?」0回か1回の繰り返し

例えば、「ab*」としたとき「a」「ab」「abb」「abbbb」などは全てマッチします。しかし、「ab+」としたら「ab」はマッチするが「a」だけの文字列はマッチしない特徴があります。

繰り返し表記を用いた使用例

import re

#1---文字列の指定
word = "Greeen"
#2---繰り返しの指定
tansaku = r"Gre*"
print(re.match(tansaku,word))
#<_sre.SRE_Match object; span=(0, 5), match='Greee'>

上記がプログラムになります。

それでは解説していきます。

#1---文字列の指定
word = "Greeen"

1の部分では、文字列を指定しています。

#2---繰り返しの指定
tansaku = r"Gre*"

2の部分では、「Gre」の0回以上の繰り返しがあるか確認しています。

結果としては「<_sre.SRE_Match object; span=(0, 5), match=’Greee’>」なので、ちゃんと認識していることが分かります。

回数指定の表記

回数を指定する表記は以下の通りです。

項目内容
「{x}」x回以上の繰り返し
「{x,y}」x回以上y回以下の繰り返し
「[x,}」x回以上の繰り返し

例えば、「x{5}」としたら「xxxxx」がマッチします。「x{2,3}」としたら「xx」「xxx」がマッチします。

回数指定を用いた使用例

import re

#1---文字列の指定
word = "Greeen"
#2---繰り返しの指定
tansaku = r"Gre{2}"
print(re.match(tansaku,word))
#<_sre.SRE_Match object; span=(0, 4), match='Gree'>

上記がプログラムになります。

それでは解説していきます。

#1---文字列の指定
word = "Greeen"

1の部分では、文字列を指定しています。

#2---繰り返しの指定
tansaku = r"Gre{2}"

2の部分では、繰り返しの回数が2回のものを指定しています。

最後に結果としては「<_sre.SRE_Match object; span=(0, 4), match=’Gree’>」となっていることが確認できます。

最小単位の繰り返し

正規表現は最長一致が基本的です。しかし、最小単位で繰り返している文字を抽出したい場合があると思います、そんなときに「*」「+」「?」に「?」を加えることで最小単位で抽出できます。

「?」を用いた使用例

import re
#1---文字の指定
s="hogehogehoge"
#2---全ての探索
re.findall(r".+?e",s)
#['hoge', 'hoge', 'hoge']

上記がプログラムになります。

それでは解説していきます。

#1---文字の指定
s="hogehogehoge"

1の部分では文字列を指定しています。

#2---全ての探索
re.findall(r".+?e",s)

2の部分では、findallメソッドを用いて、「e」で繰り返している単位で抽出しています。

['hoge', 'hoge', 'hoge']

最後に結果としては「hoge」が3つ出力されます。

タイトルとURLをコピーしました