![]() |
|
Модераторы: ginnie |
![]()
|
|
| Dziro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
Стоит проблема удаления всех html-тэгов за исключением разрешённых.
Пытаюсь сделать такую маску на примере двух разрешённых тегов: /\<\s*[\/]*\s*[^(div)|(ul)]+\s*?.*?\>/i Тобишь суть в том что шаблон [^(div)|(ul)]+ не срабатывает, он должен звучать как НЕ (DIV или UL). Группировка символов насколько я понял тут не срабатывает. |
|||
|
||||
| Dziro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
Нашёл решение. С помощью опережающей негативной проверки.
Сокращённо выглядит так: my @tags = ('body', 'ol', 'ul', 'li', 'strong', 'em', 'strike', 'p'); # Разрешённые теги my $tagsPatt = join('|', @tags); $htmlText =~ s/<\s*\/*?\s*(?!$tagsPatt)\b.*?>//gim; # Режем теги, не входящие в список разрешённых print $htmlText; Это сообщение отредактировал(а) Dziro - 20.3.2010, 20:16 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |