0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы познакомимся с так называемыми<strong>флагами</strong>, которые позволяют изменить поведение регулярных выражений и правила поиска совпадений в строке.</p>
1
<p>В этом уроке мы познакомимся с так называемыми<strong>флагами</strong>, которые позволяют изменить поведение регулярных выражений и правила поиска совпадений в строке.</p>
2
<p>Обратите внимание на этот пример:</p>
2
<p>Обратите внимание на этот пример:</p>
3
<p>/aa/</p>
3
<p>/aa/</p>
4
<p>aa aa aa</p>
4
<p>aa aa aa</p>
5
<p>Регулярному выражению aa почему-то соответствует только одна подстрока в этой строке, хотя их должно быть три. Это происходит, потому что по умолчанию регулярные выражения ищут только первое соответствие. Чтобы изменить это поведение, используются<strong>флаги</strong>.</p>
5
<p>Регулярному выражению aa почему-то соответствует только одна подстрока в этой строке, хотя их должно быть три. Это происходит, потому что по умолчанию регулярные выражения ищут только первое соответствие. Чтобы изменить это поведение, используются<strong>флаги</strong>.</p>
6
<p>Если в течение этого курса вы уже пользовались редактором регулярных выражений или просто смотрели видео курса, то обратили внимание на поле, расположенное справа от шаблонной строки.</p>
6
<p>Если в течение этого курса вы уже пользовались редактором регулярных выражений или просто смотрели видео курса, то обратили внимание на поле, расположенное справа от шаблонной строки.</p>
7
<p>Чаще всего в нем стоит глобальный флаг /g (<em>global</em>). Он включает поиск всех сопоставлений в строке и не останавливает поиск после первого совпадения.</p>
7
<p>Чаще всего в нем стоит глобальный флаг /g (<em>global</em>). Он включает поиск всех сопоставлений в строке и не останавливает поиск после первого совпадения.</p>
8
<p>Давайте поставим флаг g. Теперь сопоставились все подстроки:</p>
8
<p>Давайте поставим флаг g. Теперь сопоставились все подстроки:</p>
9
<p>/aa /g</p>
9
<p>/aa /g</p>
10
<p>aa aa aa</p>
10
<p>aa aa aa</p>
11
<p>В этом курсе мы по умолчанию используем флаг g в наших примерах и не указываем его дополнительно. Однако вы можете встретить его в составе регулярных выражений в тестах и практических заданиях. Если увидите /g в конце регулярного выражения, то знайте - это флаг глобального поиска.</p>
11
<p>В этом курсе мы по умолчанию используем флаг g в наших примерах и не указываем его дополнительно. Однако вы можете встретить его в составе регулярных выражений в тестах и практических заданиях. Если увидите /g в конце регулярного выражения, то знайте - это флаг глобального поиска.</p>
12
<p>Глобальный флаг часто используется, когда нужно не просто найти сопоставление регулярному выражению в строке, но и извлечь или использовать результаты поиска.</p>
12
<p>Глобальный флаг часто используется, когда нужно не просто найти сопоставление регулярному выражению в строке, но и извлечь или использовать результаты поиска.</p>
13
<p>В зависимости от языка программирования флаги могут включаться непосредственно в сами регулярные выражения, или задаваться иными способами. Как именно это реализовано в конкретном языке, нужно смотреть в документации языка.</p>
13
<p>В зависимости от языка программирования флаги могут включаться непосредственно в сами регулярные выражения, или задаваться иными способами. Как именно это реализовано в конкретном языке, нужно смотреть в документации языка.</p>
14
<p>Напоследок рассмотрим еще несколько флагов.</p>
14
<p>Напоследок рассмотрим еще несколько флагов.</p>
15
<p>Например, есть флаг /i, который включает режим игнорирования регистра:</p>
15
<p>Например, есть флаг /i, который включает режим игнорирования регистра:</p>
16
<p>/aa /gi</p>
16
<p>/aa /gi</p>
17
<p>aa Aa AA</p>
17
<p>aa Aa AA</p>
18
<p>Еще один флаг - /s. Он включает соответствие метасимвола . переводу строки. Другими словами, с ним строка, в которой мы ищем совпадения, представляется как одна строчка. Иногда это может пригодиться.</p>
18
<p>Еще один флаг - /s. Он включает соответствие метасимвола . переводу строки. Другими словами, с ним строка, в которой мы ищем совпадения, представляется как одна строчка. Иногда это может пригодиться.</p>
19
<p>Не напоминают ли вам флаги что-то, пройденное нами ранее? Верно, по сути - это более могущественные версии модификаторов.</p>
19
<p>Не напоминают ли вам флаги что-то, пройденное нами ранее? Верно, по сути - это более могущественные версии модификаторов.</p>
20
<p>Модификаторы позволяют делать более точечные изменения правил сопоставления, в то время как флаги делают это на глобальном уровне.</p>
20
<p>Модификаторы позволяют делать более точечные изменения правил сопоставления, в то время как флаги делают это на глобальном уровне.</p>
21
<p>Существует еще несколько флагов. Изучение остальных - ваше задание после этого урока. Зайдите в любой редактор регулярных выражений, прочитайте документацию по флагам, покрутите примеры из нее и обязательно попробуйте использовать каждый флаг.</p>
21
<p>Существует еще несколько флагов. Изучение остальных - ваше задание после этого урока. Зайдите в любой редактор регулярных выражений, прочитайте документацию по флагам, покрутите примеры из нее и обязательно попробуйте использовать каждый флаг.</p>