What do comma separated numbers in curly braces at the end of a regex mean?
That is the custom repetition operation known as the Quantifier.
\d{3}
will find exactly three digits.
[a-c]{1,3}
will find any occurrance of a, b, or c at least one time, but up to three times.
\w{0,1}
means a word character will be optionally found. This is the same as placing a Question Mark, e.g.: \w?
(\d\w){1,}
will find any combination of a Digit followed by a Word Character at least One time, but up to infinite times. So it would match 1k1k2k4k1k5j2j9k4h1k5k
This is the same as a Plus symbol, e.g.: (\d\w)+
b{0,}\d
will optionally find the letter b
followed by a digit, but could also match infinite letter b
's followed by a digit. So it will match 5
, b5
, or even bbbbbbb5
. This is the same as an Asterisk. e.g.: b*\d
Quantifiers
They are 'quantifiers' - it means 'match previous pattern between 3 and 19 times'
When you are learning regular expressions, it's really use to play with them in an interactive tool which can highlight the matches. I've always liked a tool called Regex Coach, but it is Windows only. Plenty of online tools though - have a play with your regex here, for example.
{n,m}
means "repeat the previous element at least n
times and at most m
times", so the expression[A-Za-z0-9\s]{3,19}
means "match between 3 and 19 characters that are letters, digits, or whitespace". Note that repetition is greedy by default, so this will try to match as many characters as possible within that range (this doesn't come into play here, since the end of line anchor makes it so that there is really only one possibility for each match).