Регулярные выражения (Regular expressions, или просто regexp) — механизм, который позволяет осуществлять сложный поиск  подстроки по заданному шаблону. Вот как раз о шаблонах мы и поговорим сегодня.

Специальные символы

Сложно? Ниже есть примеры, по ним будет все понятно.

Метасимволы

Группы и просмотр

Грубо говоря все сводится к следущей форме:

Готовые шаблоны

Поиск email в строке

Регулярное выражение для поиска email

Разбор

  • ^ — начало строки;
  • ([a-z0-9_\.-]+) — группа, состоящая из символов от a до z, цифр, нижнего подчеркивания, точки или тире, которые повторяются хотя бы один раз (+);
  • @ — собачка, куда же без нее в email;
  • ([a-z0-9_\.-]+) — разобрали уже чуть выше;
  • . — самая обычная точка. Между доменами второго и первого уровня;
  • ([a-z\.]{2,6}) — доменная зона. Символы от a до z или точка, которые повторяются от 2 до 6 раз;
  • $ — конец строки.

Кроме того, после обработки можно будет обратиться к найденным группам $1 (username), $2 (домен второго уровня), $3 (доменная зона)

Поиск url в строке

Регулярное выражения для поиска url в строке

Разбор

  • ^ — начало строки;
  • (https?:\/\/)? — ищем http, следующий символ s, но он может и отсутствовать. Далее двоеточие, два заэкранированных слеша. Однако этого может и не быть;
  • ([\da-z\.-]+) — цифры, латинский алфавит, точки и тире в каких-угодно количествах;
  • . — самая обычная точка. Между доменами второго и первого уровня;
  • ([a-z\.]{2,6}) — доменная зона. Символы от a до z или точка, которые повторяются от 2 до 6 раз;
  • ([\/\w\.-]*)*\/? — слеш и любые алфавитные символы, включая точки и тире в каких угодно количествах, которые могут повторяться от 0 до бесконечности. Кроме того это может заканчиваться слешем, а может и нет, поэтому «?»;
  • $ — конец строки.

Кроме того, после обработки можно будет установить адрес главной страницы ($1, $2 и $3), а в остальных переменных будет адрес страницы.

Поиск даты в строке

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

Разбор

  • ^ — начало строки;
  • \d{1,2} — любое число от одного до двух разрядов (день);
  • ([-. /]) — тире, точка, пробел или слеш между днем и месяцем;
  • \d{1,2} -любое число от одного до двух разрядов (месяц);
  • \1 — вставляет выражение из первой группы захвата (из первых скобок, т.е. эквивалетно ([-. /]) );
  • \d{2,4}- любые числа года от двух до четырех разрядов, которые обозначают год;
  • $ — конец строки.

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


Оставить комментарий