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

Простой пример использования регулярных выражений: в тексте надо найти все даты, для этого необходимо определить формат поиска данных: "ДД.ММ.ГГГГГ.".

Работать с регулярными выражениями можно в:
  • Notepad++;
  • Regex101;
  • Myregexp;
  • Regexr.
Для создания шаблона используются спецсимволы.

Примеры спецсимволов:
  • Точка в регулярном выражении заменяет любой символ. При поиске выражения ".ор" найдутся: вор, бор, сор, хор... Если нам нужно найти выражение, содержащее именно точку (или какой-либо другой спецсимвол), ее надо экранировать – поставить перед ней обратный слеш.
    Например, для поиска всех документов с расширением txt надо использовать регулярное выражение "\.txt".
  • В квадратных скобках [] указываются допустимые альтернативы. Например, для того, чтобы найти все упоминания слова ноль (а у него есть два варианта написания), надо использовать следующее регулярное выражение: "н[оу]ль".
  • ^ в квадратных скобках [] позволяет прописать исключение. Например, выражение [^а-г8] означает любой символ кроме а, б, в, г и цифры 8.

Примеры
1. Напишем регулярное выражение для поиска номера телефона в Regex101.
Сначала нужно определить допустимые символы. Для номера телефона это все цифры 0-9 и "+".
Задаем это условие выражением: [+,0-9]. Впишем его в Regex101.

Обратите внимание, что необходимо определить параметры поиска (флаги).
Некоторые доступные режимы:
  • global - поиск всех совпадений (иначе находится только первое);
  • milti line - многострочный режим;
  • intensive - поиск без учета регистра ("A" и "a" воспринимаются как одинаковые символы).

Сейчас находятся все цифры и "+". Чтобы находились только номера, надо ограничить поиск по количеству символов. В нашем примере номер телефона содержит 11 или 12 символов. Дополним это условие.
Получим выражение: [+,0-9]{11,12}.

Теперь нашлись только номера телефона.
2. Напишем выражение для поиска email.

Адрес может содержать как буквенные, так и числовые символы. Мы это указали условием [a-z,0-9].
Теперь надо указать количество символов {1,20}(если не укажем, будет находится только 1 символ).
Затем прописываем обязательный символ - "@" и так далее...
Точку обязательно надо экранировать (поставить обратный слеш), иначе она будет восприниматься как любой символ.