HTML Diff
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