0

目前我正在做一个项目来去除所有不必要的 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 中时,如何仅替换双空格?

4

3 回答 3

1

您用单空格替换双空格的代码并没有真正使用正则表达式。如果你想要正则表达式,那么它应该如下所示:

myurl = myurl.replace(/\s{2,}/g, ' ');

下一步是扩展正则表达式以检测HREFSRC标记并跳过它们。

参考1

参考文献 2

于 2012-12-19T15:27:25.570 回答
0

使用Html 敏捷包。Regex 不够聪明,无法解析带有嵌套结构的 Html,或者至少,您最终会遇到极其复杂的 Regex 表达式。

于 2012-12-19T15:45:53.247 回答
0

最后我不想使用解析器,因为仅此功能将花费更多时间。我的最终解决方案是找到所有属性 KEY="VALUE"。用标签替换这些属性中的空格。然后用1个空格替换所有双空格,最后用空格替换标签。现在属性仍然会保留空间,我不需要图书馆。

于 2013-01-11T15:44:38.367 回答