Python: 正規表現の基本 – 最長、最短マッチング

直前の文字、メタ文字を繰り返しマッチングさせる量指定記号である「*」「+」「?」などは、テキスト中にその繰り返しパターンがマッチする箇所が複数ある場合は、通常最後にマッチした箇所をオブジェクトに記録します。このような最長マッチングに対して、マッチング箇所が複数の場合に最初にマッチした箇所を記録する最短マッチング方法があります。
最短マッチングを行う量指定記号は最長マッチングの記号の末尾に「?」を付けるだけです。すなわち、最長の量指定が「*」「+」「?」であるのに対して、最短マッチングは「*?」「+?」「??」となります。それでは、以下のコードで確認してみましょう。

ソースコード

re.searchはre.matchと異なり、パターンをテキスト文字列の先頭以外にもマッチさせます。

実行結果

リファレンス

コメント

  1. 愛宕翔太 より:

    ここにpython使った正規表現使ったサンプル落ちてる
    @yukun_ I just read http://www.yukun.info/blog/2008/08/python-regexp-greedy-reluctant-match.html