最短一致

back
正規表現は、指定がなければ最長一致を行う。

$str = "abcabcabcabc";
$str =~ /a(.*)c/;

まず a は $str 1文字目の a にマッチし、c は $str の末尾の c にマッチするため、
$1 は bcabcabcab になる。

範囲を最小にマッチさせたい場合は

$str =~ /a(.*?)c/;

と、繰り返しを表す記号の後に ? をつける。
これで $1 は b になる。

ちなみに、もちろん、最初から 2文字目の b です。

back