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