0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы познакомимся с понятием квантификации и научимся находить повторяющиеся символы с ее помощью.</p>
1
<p>В этом уроке мы познакомимся с понятием квантификации и научимся находить повторяющиеся символы с ее помощью.</p>
2
<p><strong>Квантификация</strong>- это поиск последовательностей. Квантификатор - это специальный ограничитель, который указывает количество возможных повторений символа, группы символов или класса символов, находящихся в регулярном выражении перед ним. Давайте разберемся, что это все значит.</p>
2
<p><strong>Квантификация</strong>- это поиск последовательностей. Квантификатор - это специальный ограничитель, который указывает количество возможных повторений символа, группы символов или класса символов, находящихся в регулярном выражении перед ним. Давайте разберемся, что это все значит.</p>
3
<p>Посмотрим на пример с простейшим квантификатором - символом ?. Он обозначает "поиск совпадений с повторением от ноля до одного раза":</p>
3
<p>Посмотрим на пример с простейшим квантификатором - символом ?. Он обозначает "поиск совпадений с повторением от ноля до одного раза":</p>
4
<p>/colou?/</p>
4
<p>/colou?/</p>
5
<p>colr, color, colour, colouur, colouuur</p>
5
<p>colr, color, colour, colouur, colouuur</p>
6
<p>В этом выражении нет группировки или символьного класса, поэтому квантификатор ? задает повторение для символа u. Еще он обозначает, что предшествующий ему символ u:</p>
6
<p>В этом выражении нет группировки или символьного класса, поэтому квантификатор ? задает повторение для символа u. Еще он обозначает, что предшествующий ему символ u:</p>
7
<ul><li>Либо не будет участвовать в совпадении (то есть повторится ноль раз)</li>
7
<ul><li>Либо не будет участвовать в совпадении (то есть повторится ноль раз)</li>
8
<li>Либо будет участвовать без повторений (то есть повторится один раз)</li>
8
<li>Либо будет участвовать без повторений (то есть повторится один раз)</li>
9
</ul><p>В итоге мы получим четыре совпадения.</p>
9
</ul><p>В итоге мы получим четыре совпадения.</p>
10
<p>А в этом примере дополним шаблонную строку символом r. И у нас будет лишь два совпадения:</p>
10
<p>А в этом примере дополним шаблонную строку символом r. И у нас будет лишь два совпадения:</p>
11
<p>/colou?r/</p>
11
<p>/colou?r/</p>
12
<p>colr, color, colour, colouur, colouuur</p>
12
<p>colr, color, colour, colouur, colouuur</p>
13
<p>Используем группировку и символьный класс - и у нас уже иные сопоставления:</p>
13
<p>Используем группировку и символьный класс - и у нас уже иные сопоставления:</p>
14
<ul><li>В случае с группировкой - проверка вхождения всей группы ноль или один раз</li>
14
<ul><li>В случае с группировкой - проверка вхождения всей группы ноль или один раз</li>
15
<li>В случае с символьным классом - проверка вхождения ноль или один раз одного из символов, но не всех одновременно</li>
15
<li>В случае с символьным классом - проверка вхождения ноль или один раз одного из символов, но не всех одновременно</li>
16
</ul><p>Посмотрим, как это работает:</p>
16
</ul><p>Посмотрим, как это работает:</p>
17
<p>/col(ou)?r/</p>
17
<p>/col(ou)?r/</p>
18
<p>colr, color, colour, colouur, colouuur</p>
18
<p>colr, color, colour, colouur, colouuur</p>
19
<p>/col[ou]?r/</p>
19
<p>/col[ou]?r/</p>
20
<p>colr, color, colour, colouur, colouuur</p>
20
<p>colr, color, colour, colouur, colouuur</p>
21
<p>Еще один квантификатор - символ +. Предшествующий ему символ, группа или класс символов, должны встречаться как минимум один раз. Так и происходит. Здесь слово color уже не сопоставляется:</p>
21
<p>Еще один квантификатор - символ +. Предшествующий ему символ, группа или класс символов, должны встречаться как минимум один раз. Так и происходит. Здесь слово color уже не сопоставляется:</p>
22
<p>/colou+r/</p>
22
<p>/colou+r/</p>
23
<p>colr, color, colour, colouur, colouuur</p>
23
<p>colr, color, colour, colouur, colouuur</p>
24
<p>Символ * говорит об отсутствии повторений или о повторении один или несколько раз. Так мы получаем совпадение во всех подстроках, кроме colr:</p>
24
<p>Символ * говорит об отсутствии повторений или о повторении один или несколько раз. Так мы получаем совпадение во всех подстроках, кроме colr:</p>
25
<p>/colou*r/</p>
25
<p>/colou*r/</p>
26
<p>colr, color, colour, colouur, colouuur</p>
26
<p>colr, color, colour, colouur, colouuur</p>
27
<p>Есть более точные квантификаторы, которые записываются в фигурных скобках {}. Достаточно указать в них необходимое число повторений:</p>
27
<p>Есть более точные квантификаторы, которые записываются в фигурных скобках {}. Достаточно указать в них необходимое число повторений:</p>
28
<p>/colou{2}r/</p>
28
<p>/colou{2}r/</p>
29
<p>colr, color, colour, colouur, colouuur</p>
29
<p>colr, color, colour, colouur, colouuur</p>
30
<p>Кроме того, в фигурных скобках {} можно указать диапазон повторений. Например, от двух до трех:</p>
30
<p>Кроме того, в фигурных скобках {} можно указать диапазон повторений. Например, от двух до трех:</p>
31
<p>/colou{2,3}r/</p>
31
<p>/colou{2,3}r/</p>
32
<p>colr, color, colour, colouur, colouuur</p>
32
<p>colr, color, colour, colouur, colouuur</p>
33
<p>Если мы не укажем конец диапазона, то максимальное количество повторений не будет ограничено:</p>
33
<p>Если мы не укажем конец диапазона, то максимальное количество повторений не будет ограничено:</p>
34
<p>/colou{1,}r/</p>
34
<p>/colou{1,}r/</p>
35
<p>colr, color, colour, colouur, colouuur, colouuuur, colouuuuur</p>
35
<p>colr, color, colour, colouur, colouuur, colouuuur, colouuuuur</p>
36
36