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

baltun

Администратор
Сообщения
10.731
Реакции
2.542
Баллы
2.003
[abc] Один из символов a, b, c
. Любой символ
[^abc] Любой символ кроме a, b, c
\s Пробельный символ (в т.ч. табуляция)
[a-z] [a-[a-z] Любой символ из диапазона
\S Любой не пробельный символ
[a-zА-Я] Любой символ из диапазонов
\d Любая цифра
^ Начало строки
\D Не цифра
$ Конец строки
\w Буква (буквы, цифры, подчеркивание)
\A Начало текста
\W Не буква (специальные символы)
\z Конец текста
\b Граница слова (начало или конец)
\n Символ новой строки в Unix
\r\n Символ новой строки в Windows
\pL Буква (в т.ч. русская) в кодировке utf-8, используется с модификатором u


(...) Группировка (группа)
(a|b) a или b
a? Одна a или пусто
a* Ноль и более раз a
a+ Один и более раз a
a{3} 3 раза a
a{3,} 3 и более раз a
a{3,5} От 3 до 5 раз a
\t Символ табуляции

Модификаторы.
i
Регистронезависимость. Например "/a/i" ищет и a, и A.
U Инвертирует "жадность" (по умолчанию жадный, т.е. пытается захватить как можно большую строку, подходящую по условию).
u Использование кодировки utf-8 (для поиска русского текста например).
m Многострочный поиск.
s Символ . (точка) соответствует и переводу строки.
x Игнорировать пробелы. В этом случае пробелы нужно экранировать обратным слэшем \.

Примеры регулярных выражений:
  • Номер кредитки:
    [0-9]{13,16}
  • ICQ:
    ([1-9])+(?:-?\d){4,}
  • Набор из букв и цифр (латиница):
    ^[a-zA-Z0-9]+$
  • Набор из букв и цифр (латиница + кириллица):
    ^[а-яА-ЯёЁa-zA-Z0-9]+$
  • Домен (например abcd.com):
    ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
  • IPv4:
    ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
  • IPv6:
    ((^|:)([0-9a-fA-F]{0,4})){1,8}$
  • Имя пользователя (с ограничением 2-20 символов, которыми могут быть буквы и цифры, первый символ обязательно буква):
    ^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$
  • Пароль (Строчные и прописные латинские буквы, цифры):
    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$
  • Пароль (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов):
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
  • Дата в формате YYYY-MM-DD:
    [0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])
    UPD.
    (19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)
  • Дата в формате DD/MM/YYYY:
    (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
  • Целые числа и числа с плавающей точкой (разделитель точка):
    \-?\d+(\.\d{0,})?
  • UUID:
    ^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$
  • Широта или долгота:
    -?\d{1,3}\.\d+

  • UPD. E-mail:
    ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
  • UPD. URL на латинице. Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «рф»:
    ~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i
  • UPD. Время в формате HH:MM:SS:
    ^([0-1]\d|2[0-3]):)[0-5]\d){2}$
  • UPD. Mac-адрес:
    ([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
 
Последнее редактирование:
  • Мне нравится
Реакции: Halk
Назад
Верх Низ