【发布时间】:2015-10-19 18:23:21
【问题描述】:
在我的例子中,特定的文件集都包含在指定的目录及其子目录中。
我需要确保它不会删除 IE 浏览器的条件规则,例如 <!--[if IE 9]>。
这是一个示例数据集:
<!DOCTYPE html>
<!-- Should not delete the conditional below -->
<!--[if IE 9]>
<html>
<![endif]-->
<head></head>
<body>
<p>Some content</p>
<!--Single line without space-->
<!-- Single line with spaces -->
<!-- Multi
Line
Comment -->
<div>Content</div>
</body>
</html>
【问题讨论】:
-
但是条件规则是 HTML cmets,所以你真的想删除 一些 HTML cmets。
-
也许是
<!--[^\[].*?--> -
如果
.不代表换行符,那么您可以将其替换为(.|\s) -
我们可以玩一个有趣的游戏“您发布一个您认为可以解析除条件之外的HTML cmets 的正则表达式,而我们发布它不会解析的方式”? @maraca 的方法,我反驳
<a onclick='javascript:alert("<!-- test -->")'>hello</a>- 这不是评论,但会像评论一样被删除。 @Steven Penny 可能会与foo <!-- x <!-- --> bar -->混淆,这可能不是有效的 HTML,但 Chrome 使bar可见。此外,删除 cmets 可能会删除实时 JavaScript(w3schools.com/tags/tag_comment.asp - 提示和注释部分)。使用 HTML 解析器。
标签: html regex awk sed html-parsing