Поиск тегов с помощью регулярных выражений на 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> | |
| |
Похожие материалы: |
|