Как составить регулярное выражение

Наиболее часто используемые выражения

Дата в формате ДД.ММ.ГГГГ, с учетом допустимого количества дней в месяце и високосных годов

(((((0[1-9])|(1\d)|(2[0-8]))\.((0[1-9])|(1[0-2])))|((31\.((0[13578])|(1[02])))|((29|30)\.((0[1,3-9])|(1[0-2])))))\.((20[0-9][0-9])|(19[0-9][0-9])))|((29\.02\.(19|20)(([02468][048])|([13579][26]))))$

Email

^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

Email (сложная версия)

(?:[a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Проверку пройдут адреса, включающие «мусор»: выражения вида «example@example.com рабочая почта» и др.

Номер телефона РФ (сложная версия)

  • (\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$

Проверку пройдут номера телефонов, записанные в таких форматах:

+79855310868

+79855310868

+7 (926) 777-77-77

88008454545

89855310868

79855310868

9576785747

  • (+7|7|8)?[\s-]?(?[489][0-9]{2})?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}

Проверку пройдут номера телефонов, включающие «мусор»: выражения вида «звоните до 21 часа 89123456789» и др.

Номер телефона РФ (упрощенная версия)

^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$

Проверку пройдут номера телефонов из сложной версии, а также:

880084545454

88008454545411

465456465465

784545487878

231321546545

7889213554654

Пароль, в котором есть минимум 8 символов, разные регистры, цифры, и символы

(?=(.*[0-9]))(?=.*[\!@#$%^&*()\\[\]{}\-_+=~`|:;\"'<>,./?])(?=.*[a-z])(?=(.*[A-Z]))(?=(.*)).{8,}

Буквы, числа, знаки переноса

([A-Za-z0-9-]+)

Имя файла jpg, gif, или png

([^\s]+(?=\.(jpg|gif|png))\.\2)

Любое число от 1 до 50 включительно

(^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$)

Числовой промежуток – сервис генерации регулярных выражений

https://3widgets.com/

Шестнадцатеричный код цвета

^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$

URL

(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)

Любой текст, содержащий “текст 1”/“текст 2”/“текст 3”, без учета регистра

(?i).*(текст 1|текст 2|текст 3).*

Проверка на наличие ненормативной лексики

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

Шпаргалка по составлению регулярных выражений

Источник: Лаборатория EXLAB | Шпаргалка по регулярным выражениям.

Проверка

Проверить правильность составленного регулярного выражения можно на regex101.com.

Last updated