Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Флаги Регулярные выражения (Regexp)

В этом уроке мы познакомимся с так называемыми флагами, которые позволяют изменить поведение регулярных выражений и правила поиска совпадений в строке.

Обратите внимание на этот пример:


/aa/

aa aa aa


Регулярному выражению aa почему-то соответствует только одна подстрока в этой строке, хотя их должно быть три. Это происходит, потому что по умолчанию регулярные выражения ищут только первое соответствие. Чтобы изменить это поведение, используются флаги.

Если в течение этого курса вы уже пользовались редактором регулярных выражений или просто смотрели видео курса, то обратили внимание на поле, расположенное справа от шаблонной строки.

Чаще всего в нем стоит глобальный флаг /g (global). Он включает поиск всех сопоставлений в строке и не останавливает поиск после первого совпадения.

Давайте поставим флаг g. Теперь сопоставились все подстроки:


/aa        /g

aa aa aa


В этом курсе мы по умолчанию используем флаг g в наших примерах и не указываем его дополнительно. Однако вы можете встретить его в составе регулярных выражений в тестах и практических заданиях. Если увидите /g в конце регулярного выражения, то знайте — это флаг глобального поиска.

Глобальный флаг часто используется, когда нужно не просто найти сопоставление регулярному выражению в строке, но и извлечь или использовать результаты поиска.

В зависимости от языка программирования флаги могут включаться непосредственно в сами регулярные выражения, или задаваться иными способами. Как именно это реализовано в конкретном языке, нужно смотреть в документации языка.

Напоследок рассмотрим еще несколько флагов.

Например, есть флаг /i, который включает режим игнорирования регистра:


/aa        /gi

aa Aa AA


Еще один флаг — /s. Он включает соответствие метасимвола . переводу строки. Другими словами, с ним строка, в которой мы ищем совпадения, представляется как одна строчка. Иногда это может пригодиться.

Не напоминают ли вам флаги что-то, пройденное нами ранее? Верно, по сути — это более могущественные версии модификаторов, которые мы рассмотрели в восьмом уроке.

Модификаторы позволяют делать более точечные изменения правил сопоставления, в то время как флаги делают это на глобальном уровне.

Существует еще несколько флагов. Изучение остальных — ваше задание после этого урока. Зайдите в любой редактор регулярных выражений, прочитайте документацию по флагам, покрутите примеры из нее и обязательно попробуйте использовать каждый флаг.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 28 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 28 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»