Модификаторы в регулярных выражениях
Практически всегда при написании регулярных выражений приходится задавать определённые режимы поиска соответствий. Таких режимов достаточно много, и они задаются с помощью модификаторов в регулярных выражений.
Небольшая таблица с модификаторами, которые используют при написании регулярных выражений.
Модификатор | Что делает |
i | Самый важный модификатор, указав который регистр (строчная или прописная буква) при поиске соответствий учитываться не будет. |
U | Если указать данный модификатор, то будет вестись поиск минимального по длине соответствия. По умолчанию же ищется максимальное по длине соответствие. |
m | Данный модификатор будет искать соответствие только в одной строке, а не по всему тексту. |
s | Противоположность модификатору m, то есть, указав данный модификатор, соответствие будет искаться по всему тексту. |
x | При использовании данного модификатора пробельные символы будут игнорироваться. То есть Вы можете написать хоть 100 пробелов, и они будут опущены. Если, конечно, Вы их не экранируете (с помощью "\"). |
Чтобы стало понятно, как используются модификаторы в регулярных выражениях, привожу пример:
/a [0-9]* b/ix
Строка, которая "содержит последовательность, которая начинается с символа a, после которого идёт последовательность любых цифр, а далее идёт символ b, причём регистр не важен", будет соответствовать регулярному выражению, написанному выше. Также заметьте, что так как мы использовали модификатор "x", то все неэкранированные пробелы были опущены. Фактически, наше регулярное выражение имеет вид:
/a[0-9]*b/ix
Примеры строк, которые соответствуют данным регулярным выражениям (напоминаю, что они идентичны друг другу в связи и использованием модификатора "x"): "a932b", "A392b", "a9B". А вот в такой строке соответствия найдено не будет: "a 993b".
Другими словами, модификатор "x" используется для написания более наглядных регулярных выражений.
После этой статьи Вы должны понять: что такое модификаторы, для чего они используются и как они используются. Если Вы ответили на эти вопросы, а также прочитали предыдущие статьи по регулярным выражениям, то можно считать, что Вы уже можете писать практически любые регулярные выражения.
Успехов!
-
- Михаил Русаков
Комментарии (7):
Михаил, у Вас ошибка в предложении:("Ксли Вы ответили на эти вопросы, а также прочитали предыдущие статьи...") В Слове "Ксли" там должно быть "Если"
Ответить
Исправлено! Спасибо.
Ответить
Вообще-то тут и название тоже "Модификаторы в регулярных выражений" - тогда либо "в регулярных выражениях", либо "регулярных выражений".
Ответить
Действительно. Исправил, спасибо.
Ответить
Можете привести пример с модификаторами U, m, s ? а то что то не понятно как они используются
Ответить
я пробовал в JavaScript модификаторы U и s не работают. Почему ?
Ответить
Михаил, хотел поблагодарить) Сейчас прохожу ваши платные курсы по js+ajax+ jquery по рекомендации знакомого, и хочу сказать, что все оооочень понятно и хорошо, Вы просто гуру от бога) Никакие эти компании типа гикбрейнс вообще рядом не стоят, только Вас приятно смотреть и все понятно)
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.