正規表現の量指定子の『*』と『+』の違い
- 『*』 - 直前の文字を 0回以上にマッチ
- 『+』 - 直前の文字を 1回以上にマッチ
例
/ab*c/ は、ac、abc、abbbbc などにマッチ
/ab+c/ は、abc、abbbbbbbbc などにマッチ
ちなみに、
- 『?』 - 直前の文字を 0 又は 1回にマッチ
- 『{n}』 - 直前の文字を n回にマッチ
- 『{n,}』 - 直前の文字を n回以上にマッチ
- 『{n,m}』 - 直前の文字を n回以上、m回以下にマッチ
例
$_ = "abbbbbbc"; print "-1-\n" if /ab*c/; # ac、abc、abbbbc などにマッチ print "-2-\n" if /ab+c/; # abc、abbbbc などにマッチ print "-3-\n" if /ab?c/; # ac、abc にマッチ print "-4-\n" if /ab{5}c/; # abbbbbc にマッチ print "-5-\n" if /ab{5,}c/; # abbbbbbbbc などにマッチ print "-6-\n" if /ab{5,7}c/; # abbbbbc、abbbbbbc、abbbbbbbc などにマッチ