Модификаторы в регулярных выражениях
Модификаторы в регулярных выражениях используются для задания дополнительных правил поиска. Они размещаются после закрывающегося разделителя регулярного выражения. Модификаторов может быть любое количество. Обычно они не разделяются никакими знаками, а идут подряд. Но также допускается разделение пробелом или переводом строки - остальные символы будут вызывать ошибки.
Модификатор | Описание |
---|---|
i | Производит поиск без учета регистра символов |
m | Позволяет обрабатывать данные как многострочный текст. По умолчанию функция обрабатывает данные как одну строку, пропуская символы разделения строк. Данный модификатор обычно используется, если существует необходимость поиска в начале или конце строки, используя метасимволы ^ или $. Если шаблон не содержит этих символов, либо текст не содержит символов перевода строки, использовать данный модификатор не имеет смысла |
s | Позволяет использовать метасимвол "точка" (.) как все символы, в т.ч. символ перевода строки. Без указания данного модификатора точка будет соответствовать всем символам за исключением перевода строки |
x | Игнорирует неэкранированные пробелы, символы табуляции и пустые строки. Обычно используется для добавления комментария (#) к сложным шаблонам |
A | Проверяет совпадение с шаблоном только в начале строки |
D | Метасимвол $ соответствует только окончанию обрабатываемых данных. Без данного модификатора $ соответствует также позиции перед последним символом |
S | Производит дополнительный анализ шаблона для уменьшения времени его выполнения |
U | Инвентирует жадность квантификаторов. Т.е. по умолчанию они становятся не жадными, если за ними не следует вопросительный знак (?) |
X |
Включает дополнительную фукнциональность: любой обратный слэш с символом, не имеющий специального значения, будет приводить к ошибке. Подобные комбинации зарезервированы для дальнейшего развития |
?J | Позволяет подшаблонам иметь одинаковые имена (с версии PHP 7.2) |
u | Позволяет обрабатывать строки в UTF-8 |
20.08.2019