Четверг, 21.11.2024
Меню сайта
Вход на сайт
Поиск
Статистика
Рейтинг@Mail.ru
Реклама
HTML Perl PHP Прочее
Поиск тегов с помощью регулярных выражений на PHP
Одним из преимуществ PCRE или POSIX является поддержка некоторых специальных конструкций. Например, обычно регулярные выражения сопоставляются "жадно". Возьмем, например, следующее регулярное выражение:

Код
<.*>


Попытаемся сопоставить его со следующей строкой:

Код
<p>Sex, drugs and <b>PHP</b>.</p>

Что получится? Вся строка. Разумеется, <p> так-же подходит под заданный шаблон, но регулярные выражения пытаются найти максимально большое соответствие. Следовательно, обычно требуются такие неуклюжие конструкции, как <[^>]*>. Впрочем, существует и более легкий путь. Чтобы активизировать "не жадное" сопоставление, после оператора * можно использовать модификатор ?.

Код
<?php
$string = '<p>Sex, drugs and <b>PHP</b>.</p>';
preg_match_all('/<.*?>/', $string, $matches);
foreach ($matches[0] as $match) {
echo htmlspecialchars("$match ");
}
?>

Приведенный код даст следующий результат:

Код
<p> <b> </b> </p>
PHP 9824 04.01.2010
Материалы по теме: