假设我有一个这样的html页面:
在:
<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="http://www.domain.com/css1.css">
</head>
<body>
<style type="text/css">
.test1{clear:both}
.test2{width:110px}
...
</style>
</body>
</html>
后:
<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="http://www.domain.com/css1.css">
<style type="text/css">
.test1{clear:both}
.test2{width:110px}
...
</style>
</head>
<body>
</body>
</html>
只是好奇是否可以通过Regex替换来完成?
非常感谢。
PS:或者有人知道google pagespeed apache2扩展程序是如何将css移动到头部的吗?
答案 0 :(得分:0)
您可以编写一个小应用程序来解析html文件,过滤样式标记,从标记中删除它们并在头部创建样式标记并再次保存html文件。
但是让我们面对现实,当我们在这里谈论一两个html文件时,你会花更多的时间来开发那个应用程序,而不仅仅是手工清理你的烂摊子。
答案 1 :(得分:0)
我正在我的一个项目中处理相同的任务,我已经制作了一个选择所有内联样式的javascript正则表达式,你可以在你的项目中使用它。
/<(style)[^>]*?>(?:.|\n)*?</\s*\1\s*>/igm
上测试此正则表达式