2010-10-08 3 views
0

Как исключить атрибут стиля из строки HTML с регулярными выражениями?Инвертировать совпадение с регулярными выражениями

Например, если мы имеем следующие инлайн HTML строку:

<html><body style="background-color:yellow"><h2 style="background-color:red">This is a heading</h2><p style="background-color:green">This is a paragraph.</p></body></html>

Когда применять регулярные выражения, соответствует результат должен выглядеть так:

<html><body ><h2 >This is a heading</h2><p >This is a paragraph.</p></body></html>

ответ

0

Вам просто нужно заменить теги стиля без ничего, вот пример, как это сделать с PHP:

$text = preg_replace('/\s+style="[^"]*"/', '', $text); 
0

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

Однако регулярное выражение, как это будет заменить заголовок:

<h2\s+style="background-color:red"> 
// replace with 
<h2> 

регулярное выражение для тега абзаца аналогичную (замените «h2» с «р» и «красный» с «зеленый»).

1

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

Конечно, вы можете срезать углы на свой страх и риск, например, путем поиска и замены style\s*=\s*"[^"]*", что ни с чем, но это удалит любой вхождение style="anything" из текста.

Смежные вопросы