Разработка магазинов с гарантией попадания в ТОП поисковых систем

Узнать подробнее
Eltisbook > PHP учебник > Регулярные выражения > Регулярные подвыражения в PHP

Регулярные подвыражения в PHP

Регулярные подвыражения способны сильно увеличивать функциональность регулярных выражений, с синтаксисом которых мы разобрались в предыдущем уроке. А сегодня мы поговорим об использовании регулярных подвыражений в PHP.

Подвыражения в PHP (подшаблоны)

В прошлом уроке нам уже довелось использовать подвыражения, а теперь пришло время разобраться с ними поподробнее.

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

пар(ламент|тнер|)

Данное выражение задает сразу три альтернативы (парламент, партнер, пар), в то время, как без использования скобок можно было получить лишь две альтернативы.

Если в html файле название находится после <body> и отделено от него только пробелами или переводами строк, заключено в тег <h1> и после него тоже может идти некоторое количество пробелов и переводов строк, то его можно найти с помощью следующего скрипта:

<?
$str = file_get_contents(‘1.htm’);
$pattern = «/<body.*?>[\n\s]*<h1>».»(.*?)<\/h1>[\n\s]*/m»;
$n = preg_match_all ($pattern, $str, $res);
echo $res[1][0]; // выводим заголовок
?>

Заметим, что здесь выводится первое захваченное подвыражение, поскольку нам интересно только само название, а не все РВ. Так как в этом РВ есть только одно подвыражение, то его значение содержится в нулевом элементе первого массива результатов.