In this lesson, we will look at quantification and observe how to find repeating characters using it.
Quantification is searching for sequences. A quantifier is a notation that specifies the number of possible repetitions of a character, a group of characters, or a character class in a regular expression before it.
We will see what all this means. Look at an example with the simplest quantifier ?
, which means to search for matches repeating from zero to one time:
/colou?
/
colr, colo
r, colou
r, colou
ur, colou
uur
There is no grouping or character class in this expression. So, the quantifier ?
specifies the number of repetitions for the character u
. It means the preceding character u
will repeat ether:
- Zero times — it does not repeat at all
- One time — it occurs once without repetitions
The result is four matches.
And in this example, we will add the character r
to the pattern string. It will only give us two matches:
/colou?r
/
colr, color
, colour
, colouur, colouuur
Using a grouping and a character class, we get different matches:
- With grouping, we check for the occurrence of the whole group for zero or one time
- With character classes, we check if one of the characters enters for zero or one time. For this case, we don't examine all characters simultaneously
/col(ou)?r
/
colr
, color, colour
, colouur, colouuur
/col[ou]?r
/
colr
, color
, colour, colouur, colouuur
Another often-used quantifier is the +
character. It indicates that we must find the preceding character, group, or class of characters at least once. It is what happens. Here, the word color is no longer matched:
/colou+r
/
colr, color, colour
, colouur
, colouuur
The character *
indicates either no repetition or multiple repetitions, giving us a match in all substrings:
/colou*r
/
colr, color
, colour
, colouur
, colouuur
There are also more specific quantifiers — we write them in curly brackets {}
. Between them, you enter the number of repetitions you need:
/colou{2}r
/
colr, color, colour, colouur
, colouuur
In addition, you can enter a range of repetitions in curly brackets {}
. For example, from two to three:
/colou{2,3}r
/
colr, color, colour, colouur
, colouuur
If we don't enter a number for the upper bound of the range, there won't be a maximum number of repetitions:
/colou{1,}r
/
colr, color, colour
, colouur
, colouuur
, colouuuur
, colouuuuur
Are there any more questions? Ask them in the Discussion section.
The Hexlet support team or other students will answer you.
For full access to the course you need a professional subscription.
A professional subscription will give you full access to all Hexlet courses, projects and lifetime access to the theory of lessons learned. You can cancel your subscription at any time.