Ранее мы упоминали, что в регулярном выражении помимо шаблона присутствует модификатор. Модификатор определяет дополнительное поведение алгоритма сравнения и указывается после разделителя.
Примеры модификаторов:
Шаблон
Описание
/(Иван|Петр|Павел)/i
Модификатор i используется для указания того, что распознаваемые символы могут быть в любом регистре. Так, например, будут распознаны и строка Петр и строка ПЕТР.
/<body>.*<\/body>/m
Модификатор m используется для того, чтобы указать, что анализируется строка, которая может состоять из нескольких линий (т.е. представляет из себя многострочный текст).
/<body>.*<\/body>/s
Модификатор s используется для указания того, что символ . означает любой символ (включая перевод строки \n). В примере будет распознан многострочный текст.
В одном выражении могут быть указаны несколько модификаторов. В качестве разделителя / шаблона и модификатора могут использоваться помимо символа / еще |, !.
Если после символа разделителя в начале шаблона стоит символ ^, то ищется единственная подстрока, находящаяся в начале исходной строки. Если перед символом разделителя в конце шаблона стоит символ $, то ищется единственная подстрока, находящаяся в конце исходной строки.
Примеры:
Шаблон
Что распознаем
/ ^Иван/
В строке Иван Иванов найдем единственную подстроку Иван, хотя их две.
/ ^\d+/
В строке 123 456 найдем только 123.
/\d+$/
В строке 123 456 найдем только 456.
Для демонстрации возможностей регулярных выражений приведем следующие примеры:
Шаблон
Что распознаем
/^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/
Корректный адрес электронной почты.
/<body.*?>[\n\s]*<h1>(.*?)<\/h1>[\n\s]*/m
Заголовок HTML страницы (его распознает подшаблон (.*?)).