Регулярные выражения. Справка.

Справочные данные для создания регулярных выражений.

^ — Начало строки
$ — Конец строки
. — Любой символ кроме переводов строки (без параметра /…/s)
[ … ] — Любой из перечисленного набора символов. Внутри квадратных скобок не работают другие операторы, но можно пользоваться метасимволами. С помощью дефиса можно указывать наборы символов: от первого до последнего. Например, [a-f] означает любую букву из числа a, b, c, d, e, f.
[^ … ] — Ни один из перечисленного набора символов. Внутри квадратных скобок не работают другие операторы, но можно пользоваться метасимволами. С помощью дефиса можно указывать наборы символов: от первого до последнего. Например, [^0-9] означает любой символы, кроме 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

( … ) — Сгруппировать символы в один паттерн и запомнить
| — Предыдущий или следующий паттерн (логическое «ИЛИ»)
* — Ноль или больше раз
+ — Один или больше раз
? — 0 или 1 раз предыдущая маска
{n} — Повторять n раз
{n,} — Повторять n или больше раз
{n,m} — Повторять от n до m раз
?#N — Это оператор «просмотра назад». N — число символов для просмотра.
?~N — Отрицание просмотра назад.
?= — Просмотр вперед.
?! — Отрицание просмотра вперед.

i — не различать строчные и заглавные буквы.

Синтаксис регулярных выражений

Регулярное выражение Означает
foo Строка “foo”
^foo Строка начинается с “foo”
foo$ Строка заканчивается на “foo”
^foo$ «foo» встречается в строке только один раз
[abc] a, b, или c
[a-z] любой символ в нижнем регистре
[^A-Z] любой символ, не находящийся в верхнем регистре
(gif|jpg) Означает как «gif” так и “jpeg”
[a-z]+ Один или более символов нижнего регистра
[0-9.-] Любая цифра, точка или знак минус
^[a-zA-Z0-9_]{1,}$ Любое слово, хотя бы одна буква, число или _
([wx])([yz]) wy, wz, xy, или xz
(^A-Za-z0-9) Любой символ (не число и не буква)
([A-Z]{3}|[0-9]{4}) Означает три буквы или 4 цифры

PHP-функции для регулярных выражений

Функция Описание
preg_match() Функция preg_match() ищет строку по заданному шаблону, возвращает true, если строка находится и false, в остальных случаях
preg_match_all() Функция preg_match_all() находит все вхождения строки, заданной по шаблону
preg_replace() Функция preg_replace(), действует по тому же принципу, что и ereg_replace(), за исключением того, что регулярные выражения можно использовать как для задания шаблона поиска, так и для строки, на которую следует заменить, найденное значение.
preg_split() Функция preg_split(), действует так же как split(), за исключением того, что регулярное выражение можно использовать в качестве параметра для шаблона поиска.
preg_grep() Функция preg_grep() ищет все элементы входного массива, возвращая все элементы, соответствующие шаблону регулярного выражения.
preg_quote() Экранирует символы регулярного выражения

m — считать строку многострочной.
s — однострочная строка.
x — расширенный синтаксис ( использование пробелов и комментариев)
e — после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки.
A — соответствие шаблону будет достигаться только в том случае, если он соответствует началу строки, в которой производится поиск.
D — метасимвол $ в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол $ соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Данный модификатор игнорируется, если используется модификатор m. В языке Perl аналогичный модификатор отсутствует.
S — если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для фиксированных шаблонов, не содержащих переменных ссылок.
U — модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ ‘?’. Такая возможность не совместима с Perl. Модификатор U также может использоваться внутри шаблона, при помощи ‘?U’ записи.
X — включает дополнительную функциональность PCRE, которая не совместима с Perl: любой обратный слеш в шаблоне, за которым следует символ, не имеющий специального значения, приводят к ошибке. Это обусловлено тем, что подобные комбинации зарезервированы для дальнейшего развития. По умолчанию же, как и в Perl, слеш со следующим за ним символом без специального значения трактуется как as опечатка. На сегодняшний день это все возможности, которые управляются данным модификатором
u — включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ.

(?#комментарий) — комментарий в теле шаблона.
(?:шаблон) — группировка как и ‘( )’, но без обратной ссылки
(?=шаблон) — «заглядывание» вперед. Например /\w+(?=\t)/ соответствует слову, за которым идет табуляция, но символ ‘\t’ не включается в результат.

\ЧИСЛО — Ссылка внутри регэкспа на его же разобранную скобку, где ЧИСЛО — номер нужной группы (скобки). Этот оператор работает с некоторыми ограничениями на тип ссылаемого блока — он работает, только если в ссылаемой скобке нет операторов повторения.

\# — Следующий за слэшем символ # (кроме a-z и 0-9). Например, \\ означает символ \, \. означает символ . (точка), \$ означает символ $ и т. д.
\b — Начало слова
\B — Конец слова
[[:alnum:]] — буквенно-цифровые символы
[[:digit:]] — десятичные цифровые символы
[[:xdigit:]] — шестнадцатеричные цифровые символы
[[:alpha:]] — буквенные символы
[[:upper:]] — прописные буквенные символы
[[:lower:]] — строчные буквенные символы
[[:punct:]] — знаки пунктуации
[[:space:]] — символы пробела
[[:blanc:]] — символы табуляции и пробела
[[:print:]] — печатные символы
[[:cntrl:]] — управляющие символы
[[:graph:]] — печатные символы, за исключением пробельные

\xNN — NN — шестнадцатеричный код ASCII-символа (\x20 — пробел, \x4A — J, \x6A — j и т. д.)
\t — символ табуляции
\n — новая строка
\r — перевод каретки
\а — перевод формата
\v — вертикальная табуляция
\a — звонок
\e — escape
\033 — восьмеричная запись символа
\x1A — шестнадцатеричная
\c — control символ
\l — нижний регистр следующего символа
\u — верхний регистр -//-
\L — все символы в нижнем регистре до \E
\U — в верхнем -//-
\E — ограничитель смены регистра
\Q — отмена действия как метасимвола

\w — алфавитно-цифровой или ‘_’ символ
\W — не -//-
\s — один пробел
\S — один не пробел
\d — одна цифр
\D — одна не цифра

\b — граница слова
\B — не граница слова
\A — начало строки для каждой строки в многострочной строке
\Z — конец строки для каждой строки в многострочной строке
\G — конец действия m//g

ПРИМЕР. Получение всех картинок из HTML-документа

Если вам когда-нибудь требовалось получить все картинки с веб-страницы, этот код должен быть Вы легко сможете создать загрузчик изображений с помощью возможностей cURL

$images = array();
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
unset($data);
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
foreach($data as $url)
{
	$info = pathinfo($url);
	if (isset($info['extension']))
	{
		if (($info['extension'] == 'jpg') ||
		($info['extension'] == 'jpeg') ||
		($info['extension'] == 'gif') ||
		($info['extension'] == 'png'))
		array_push($images, $url);
	}
}

Ссылки:

http://dreamhelg.ru/2010/02/15-regular-expression-for-web-developers/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *