-->

Шпаргалка: регулярные выражения в PHP

Кот программиста

Каждый раз, когда работаю с регулярными выражениями в PHP, приходится перерывать кучу информации. Надоело — собрал и ещё буду собирать всё на этой странице. Ели нашли ошибку, можете дополнить или сказать понятней — пишите в комментариях.

регулярные выражения php

Квантификаторы

  Аналог Пример Описание
? {0,1} a? одно или ноль вхождений «а»
+ {1,} a+ одно или более вхождений «а»
* {0,} a* ноль или более вхождений «а»

Модификаторы

Символ «минус» (-) меред модификатором (за исключением U) создаёт его отрицание.

  Описание
g глобальный поиск (обрабатываются все совпадения с шаблоном поиска)
i игнорировать регистр
m многострочный поиск. Поясню: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^ - начало строки в тексте, $ - конец строки в тексте.
s текст воспринимается как одна строка, спец символ «точка» (.) будет вкючать и перевод строки
u используется кодировка UTF-8
U инвертировать жадность
x игнорировать все неэкранированные пробельные и перечисленные в классе символы

Спецсимволы

  Аналог Описание
()   подмаска, вложенное выражение
[]   групповой символ
{a,b}   количество вхождений от «a» до «b»
|   логическое «или», в случае с односимвольными альтернативами используйте []
\   экранирование спец символа
.   любой сивол, кроме перевода строки
\d [0-9] десятичная цифра
\D [^\d] любой символ, кроме десятичной цифры
\f   конец (разрыв) страницы
\n   перевод строки
\pL   буква в кодировке UTF-8 при использовании модификатора u
\r   возврат каретки
\s [ \t\v\r\n\f] пробельный символ
\S [^\s] любой символ, кроме промельного
\t   табуляция
\w [0-9a-z_] любая цифра, буква или знак подчеркивания
\W [^\w] любой символ, кроме цифры, буквы или знака подчеркивания
\v   вертикальная табуляция

Спецсимволы внутри символьного класса

  Пример Описание
^ [^da] отрицание, любой символ кроме «d» или «a»
- [a-z] интервал, любой симво от «a» до «z»

Позиция внутри строки

  Пример Соответствие Описание
^ ^a aaa aaa начало строки
$ a$ aaa aaa конец строки
\A \Aa aaa aaa
aaa aaa
начало текста
\z a\z aaa aaa
aaa aaa
конец текста
\b a\b
\ba
aaa aaa
aaa aaa
граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот
\B \Ba\B aaa aaa отсутствие границы слова
\G \Ga aaa aaa Предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a

Twitter Facebook ВКонтакте Одноклассники Google+

Комментариев нет:

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