Как удалить html теги с исключением.

LiMe

Client
Регистрация
10.12.2015
Сообщения
596
Благодарностей
316
Баллы
63
Подскажите пожалуйста, как можно удалить все теги с данных, но игнорируя к примеру <b></b> <i> </i>
Буду очень благодарен за помощь.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 927
Благодарностей
6 389
Баллы
113

Solus

Client
Регистрация
14.04.2014
Сообщения
377
Благодарностей
119
Баллы
43
<(/|)a|span|div|strong|li|p|br|h\d|и т.д....> кроме ваших.
 
  • Спасибо
Реакции: donkasstro и LiMe

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 493
Благодарностей
8 697
Баллы
113
Подскажите пожалуйста, как можно удалить все теги с данных, но игнорируя к примеру <b></b> <i> </i>
Буду очень благодарен за помощь.
вот еще вариант регулярки нашел у себя в коллекции:
Код:
<(?!p|/p|br|img).*?>
находит все теги, кроме <p></p><br><img ...>
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
596
Благодарностей
316
Баллы
63

kagorec

Client
Регистрация
24.08.2013
Сообщения
924
Благодарностей
478
Баллы
63
вот еще вариант регулярки нашел у себя в коллекции:
Код:
<(?!p|/p|br|img).*?>
находит все теги, кроме <p></p><br><img ...>
Пример снипета на удаление всех html тегов с исключением
C#:
// html clear
string text = project.ExecuteMacro(project.Variables["post"].Value);
// сначало удалим окончание ненужного кода
string text1 = System.Text.RegularExpressions.Regex.Replace(text, @"<div\ class=""primer_raz.*$|<div\ class=""primer_ddva.*$", "", System.Text.RegularExpressions.RegexOptions.Multiline|System.Text.RegularExpressions.RegexOptions.IgnoreCase );
// перед обработкой тегов, удалим некое совпадение в виде ненужной ссылки
string text2 = System.Text.RegularExpressions.Regex.Replace(text1, "><p><a[^<>]+>[^<>]{0,20}...</a></p><", "><", System.Text.RegularExpressions.RegexOptions.Multiline|System.Text.RegularExpressions.RegexOptions.IgnoreCase );
//  второй вариант предидущей регулярк но универсальнее
string text3 = System.Text.RegularExpressions.Regex.Replace(text2, ">[^<>]{0,20}...<", "><", System.Text.RegularExpressions.RegexOptions.Multiline|System.Text.RegularExpressions.RegexOptions.IgnoreCase );
// определенным тегам удалить атрибуты и классы и тд
string text4 = System.Text.RegularExpressions.Regex.Replace(text3, "<(p|br|h2|h3|h4|ul|li|ol|b|strong|dl|dt|dd|dt|dd) [^<>]+>", "<$1>", System.Text.RegularExpressions.RegexOptions.Multiline|System.Text.RegularExpressions.RegexOptions.IgnoreCase );
//  удалить все теги кроме указанных
string text5 = System.Text.RegularExpressions.Regex.Replace(text4, "<(?!p|/p|br|h2|/h2|h3|/h3|h4|/h4|ul|/ul|li|/li|ol|/ol|b|/b|strong|/strong|dl|/dl|dt|/dt|dd|/dd|dt|/dt|dd|/dd).*?>", "", System.Text.RegularExpressions.RegexOptions.Multiline|System.Text.RegularExpressions.RegexOptions.IgnoreCase );
// Стандартный трим, убрать пробелы до и после
string text6 = Macros.TextProcessing.Trim(text5, "Full");
return text6;
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)