如何使用正则表达式从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 :(得分:1)
您无法使用正则表达式解析HTML,因为HTML不是常规的。
当然,您可以自担风险,例如搜索style\s*=\s*"[^"]*"
并将其替换为空,但这将删除任何出现的style="anything"
你的文字。
答案 1 :(得分:0)
你只需要用什么都不替换样式标签,这里有一个如何用PHP做的例子:
$text = preg_replace('/\s+style="[^"]*"/', '', $text);
答案 2 :(得分:0)
大多数人回答说,在大多数情况下,正则表达式不适合HTML,所以你应该提供计划实现它的语言。
然而,像这样的正则表达式将取代标题:
<h2\s+style="background-color:red">
// replace with
<h2>
段落标记的正则表达式是类似的(将'h2'替换为'p',将'red'替换为'green')。