Регулярное выражение для удаления атрибута HTML из любого тега HTML (style="")?



Я ищу шаблон регулярного выражения, который будет искать атрибут в теге HTML. В частности, я хотел бы найти все примеры ...



style=""


... и удалите его из HTML-тега, в котором он содержится. Очевидно, это будет включать в себя все, что содержится с двойными кавычками, а также.



Для этого я использую классический ASP. У меня уже есть функция настройки для другого шаблона регулярных выражений, которая ищет все теги HTML в строке и удаляет их. Это прекрасно работает. Но теперь ... Мне просто нужен другой шаблон для конкретного удаления всех атрибутов стиля.



Любая помощь будет весьма признательна.
690   5  

5 ответов:

Я думаю, что это может сделать:

/style="[a-zA-Z0-9:;\.\s\(\)\-\,]*"/gi

Вы также можете поместить их в группы захвата, если хотите заменить только некоторые части

/(style=")([a-zA-Z0-9:;\.\s\(\)\-\,]*)(")/gi

Рабочий пример: http://regexr.com?2up30

Возможно, более простым выражением является

 style="[^\"]*"

Итак, все между двойными кавычками, кроме двойной кавычки.

Это работает с perl. Возможно, вам нужно немного изменить регулярное выражение, чтобы оно соответствовало правилам ASP, но оно должно работать для любого тега.

$file=~ s/(<\s*[a-z][a-z0-9]*.*\s)(style\s*=\s*".*?")([^<>]*>)/$1 $3/sig;

Где строка-это html-файл.

Также это в .net C#

      string resultString = null;
      string subjectString = "<html style=\"something\"> ";

      resultString = Regex.Replace(subjectString, @"(<\s*[a-z][a-z0-9]*.*\s)(style\s*=\s*"".*?"")([^<>]*>)", "$1 $3", RegexOptions.Singleline | RegexOptions.IgnoreCase);

Результат: <html >

Это выражение работает для меня:

style=".+"/ig

Я попробовал регулярное выражение Джейсона Дженнаро и слегка изменил его

/style="[a-zA-Z0-9:;&\."\s\(\)\-\,]*|\\/ig

Это регулярное выражение захватывает некоторые конкретные случаи с &quot внутри строки, например

 <div class="frame" style="font-family: Monaco, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; background-color: rgb(245, 245, 245);">some text</div>

Comments

    Ничего не найдено.