小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

正規表現の量指定子の『*』と『+』の違い

  • 『*』 - 直前の文字を 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 などにマッチ