目前我正在开展一个剥离所有不必要的HTML的项目。我已经有了它的工作,但我使用以下代码来替换双空格:
Private Function stripDubbleSpace(ByVal fileContent As String) As String
While fileContent.IndexOf(" ") <> -1
fileContent = fileContent.Replace(" ", " ")
End While
Return fileContent.Replace(" ", " ")
End Function
上面的代码有效,但在HREF或SRC中,当您将双空格替换1个空格时,url将转到404。不要问为什么我的网址中有空格,我知道这不是最好的方法。
例:
/images/my img.jpg
(2个空格)将被/images/my img.jpg
(1个空格)替换,不应替换。
如果不在HREF或SRC中,我怎么才能替换双空格?
答案 0 :(得分:1)
使用单个空格替换双倍空间的代码并不真正使用正则表达式。如果你想要regexp,那么它应该如下所示:
myurl = myurl.replace(/\s{2,}/g, ' ');
下一步是展开regexp以上以检测HREF
和SRC
标记并跳过它们。
答案 1 :(得分:0)
使用Html Agility Pack。正则表达式不够聪明,不能用它的嵌套结构来解析Html,或者至少,你最终会使用无望的复杂Regex表达式。
答案 2 :(得分:0)
最后我不想使用解析器,因为只需要这个函数就会花费更多的时间。我的最终解决方案是找到所有属性KEY =“VALUE”。用标记替换这些属性中的空格。然后用1个空格替换所有双空格,最后用空格替换标记。现在属性仍然保留空格,我不需要库。