Страница 1 из 1

Немного о Regexp(ах)

Добавлено: 26 июн 2013, 22:17
flashdeath
Якоря
^ Начало строки +
\A Начало текста +
$ Конец строки +
\Z Конец текста +
\b Граница слова +
\B Не граница слова +
\< Начало слова
\> Конец слова

Символьные классы POSIX
[:upper:] Буквы в верхнем регистре
[:lower:] Буквы в нижнем регистре
[:alpha:] Все буквы
[:alnum:] Буквы и цифры
[:digit:] Цифры
[:xdigit:] Шестнадцатиричные цифры
[:punct:] Пунктуация
[:blank:] Пробел и табуляция
[:space:] Пустые символы
[:cntrl:] Управляющие символы
[:graph:] Печатные символы
[:print:] Печатные символы и пробелы
[:word:] Буквы, цифры и подчеркивание

Утверждения
?= Вперед смотрящее +
?! Отрицательное вперед смотрящее +
?<= Назад смотрящее +
?!= или ? Отрицательное назад смотрящее +
?> Однократное подвыражение
?() Условие [если, то]
?()| Условие [если, то, а иначе]
?# Комментарий

Кванторы
* 0 или больше +
*? 0 или больше, нежадный +
+ 1 или больше +
+? 1 или больше, нежадный +
? 0 или 1 +
?? 0 или 1, нежадный +
{3} Ровно 3 +
{3,} 3 или больше +
{3,5} 3, 4 или 5 +
{3,5}? 3, 4 или 5, нежадный +

Специальные символы
\ Экранирующий символ +
\n Новая строка +
\r Возврат каретки +
\t Табуляция +
\v Вертикальная табуляция +
\f Новая страница +
\a Звуковой сигнал
[\b] Возврат на один символ
\e Escape-символ
\N{name} Именованый символ

Подстановка строк
$n n-ая непассивная группа
$2 «xyz» в /^(abc(xyz))$/
$1 «xyz» в /^(?:abc)(xyz)$/
$` Перед найденной строкой
$' После найденной строки
$+ Последняя найденная строка
$& Найденная строка целиком
$_ Исходный текст целиком
$$ Символ «$»

Диапазоны
. Любой символ, кроме переноса строки (\n) +
(a|b) a или b +
(...) Группа +
(?:...) Пассивная группа +
[abc] Диапазон (a или b или c) +
[^abc] Не a, не b и не c +
[a-q] Буква между a и q +
[A-Q] Буква в верхнем регистре между A и Q +
[0-7] Цифра между 0 и 7 +
\n n-ая группа/подшаблон +

Примечание
Диапазоны включают
граничные значения


Модификаторы шаблонов
g Глобальный поиск
i Регистронезависимый шаблон
m Многострочный текст
s Считать текст одной строкой
x Разрешить комментарии
и пробелы в шаблоне
e Выполнение подстановки
U Нежадный шаблон

Мета-символы (экранируются)
^ [ .
$ { *
( \ +
) | ?
< >

Образцы шаблонов
([A-Za-z0-9-]+) Буквы, числа и знаки переноса
(\d{1,2}\/\d{1,2}\/\d{4}) Дата (напр., 21/3/2006)
([^\s]+(?=\.(jpg|gif|png))\.\2) Имя файла jpg, gif или png
(^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$) Любое число от 1 до 50 включительно
(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?) Шестнадцатиричный код цвета
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}) От 8 до 15 символов с минимум одной цифрой, одной
заглавной и одной строчной буквой (полезно для
паролей).
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) Адрес email
(\<(/?[^\>]+)\>) HTML теги

Примечание
Эти шаблоны предназначены для ознакомительных целей и основательно
не проверялись. Используйте их с осторожностью и предварительно
тестируйте
.

Примечание
Отмеченное "+" работает
в большинстве языков
программирования.