Стоит проблема удаления всех html-тэгов за исключением разрешённых. Пытаюсь сделать такую маску на примере двух разрешённых тегов: /\<\s*[\/]*\s*[^(div)|(ul)]+\s*?.*?\>/i Тобишь суть в том что шаблон [^(div)|(ul)]+ не срабатывает, он должен звучать как НЕ (DIV или UL). Группировка символов насколько я понял тут не срабатывает.
Спасибо за наводку. Нашёл решение. С помощью опережающей негативной проверки. Сокращённо выглядит так(perl): my @tags = ('body', 'ol', 'ul', 'li', 'strong', 'em', 'strike', 'p'); # Разрешённые теги my $tagsPatt = join('|', @tags); $htmlText =~ s/<\s*\/*?\s*(?!$tagsPatt)\b.*?>//gim; # Режем теги, не входящие в список разрешённых print $htmlText;