General Quantifiers
A quantifier in a pattern means to repeat the preceding item a certain
number of times. You’ve already seen three quantifiers: *, +, and
?. But if none of those three suits
your needs, just use a comma-separated pair of numbers inside curly
braces ({}) to specify exactly how
few and how many repetitions are allowed.
So the pattern /a{5,15}/ will
match from 5 to 15 repetitions of the letter a. If the a
appears three times, that’s too few, so it won’t match. If it appears
five times, it’s a match. If it appears 10 times, that’s still a match.
If it appears 20 times, just the first 15 will match, since that’s the
upper limit.
If you omit the second number (but include the comma), there’s no
upper limit to the number of times the item will match. So, /(fred){3,}/ will match if there are three or
more instances of fred in a row (with
no extra characters, like spaces, allowed between each fred and the next). There’s no upper limit so
that would match 88 instances of fred
if you had a string with that many.
If you omit the comma as well as the upper bound, the number given
is an exact count: /\w{8}/ will match
exactly eight word characters (occurring as part of a larger string,
perhaps). And /,{5}chameleon/ matches
“comma comma comma comma comma chameleon”. By George, that is
nice.
In fact, the three quantifier characters that you saw earlier are
just common shortcuts. The star is the same as the quantifier {0,}, meaning zero or more. The plus is the
same as {1,}, meaning ...