删除所有空格?

时间:2009-04-20 12:17:10

标签: .net regex whitespace bandwidth

从.Net网站中删除所有空格的最佳方法是什么?我找到了这个网站Whitespace removal - 4Wall Art Site

如果您查看源代码,它显然是.net站点,但删除了所有不需要的选项卡和空格。现在我已经搜索过它似乎是页面渲染上的正则表达式是最好的方法,但有没有人有任何例子?或者对于这是否是最佳方式存在任何矛盾的看法?该网站上的html源代码低至约30kb,这是我正在努力的目标!

谢谢, 史蒂夫

4 个答案:

答案 0 :(得分:5)

如果你还没有,你会更好地打开gzip / deflate compression in IIS。如果您正在尝试减少网络流量并提高性能,则压缩会产生更大的影响,然后移除空白区域。

答案 1 :(得分:1)

您几乎不应该尝试在HTML上使用正则表达式(请参阅Can you provide some examples of why it is hard to parse XML and HTML with a regex?了解原因)。这对于解析器来说确实是一项工作(有关C#的HTML解析器,请参阅What is the best way to parse html in C#?)。您想要做的伪代码是

print tag and attributes with minimal spaces
if tag is in list of tags whose contents can be to modified
    strip redundant whitspace from contents
print contents
print end tag

不应修改其内容的标记的一个示例是pre标记。

答案 2 :(得分:0)

好吧,如果你真的想要你可以使用bash'sed'而且perl正则表达式会实现同样的目的:

击:

cat yourhtmlfile.html | sed 's_\ +_\ _g' > newReducedFile.html

那应该达到你想要的。它将一个或多个空间分成一个空格。这应该从您的文件中删除大部分不必要的空格。对于.net网站,您可以使用perl或python。有Windows版本。

答案 3 :(得分:0)

如果你真的觉得需要删除空格,那么开始的地方就是http://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspx,我强调这应该只是一个开始的地方,不要只是复制文章中的代码作为作者显然没有很好地掌握他们以非常低效的方式使用的正则表达式。

它是如何显示使用过滤器修改所有页面输出的技术。