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になります。私のURLにスペースがある理由を聞かないでください、それが最善の方法ではないことを私は知っています。

例:
/images/my img.jpg(2スペース)は/images/my img.jpg(1スペース)に置き換えられますが、これは置き換えないでください。

HREFまたはSRC内にない場合にのみ、ダブルスペースを置き換えるにはどうすればよいですか?

4

3 に答える 3

1

ダブルスペースをシングルスペースに置き換えるコードは、実際には正規表現を使用していません。正規表現が必要な場合は、次のようにする必要があります。

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

次のステップは、正規表現の上に展開して、それらを検出HREFしてSRCタグ付けし、スキップすることです。

参考1

参考2

于 2012-12-19T15:27:25.570 に答える
0

最後に、パーサーを使用したくありませんでした。これは、この関数だけに時間がかかるためです。私の最終的な解決策は、すべての属性 KEY="VALUE" を見つけることでした。これらの属性内のスペースをタグで置き換えます。次に、すべてのダブル スペースを 1 つのスペースに置き換え、最後にタグをスペースに置き換えます。これで、属性は引き続きスペースを保持し、ライブラリは必要ありません。

于 2013-01-11T15:44:38.367 に答える
0

Html Agility Packを使用します。正規表現は、ネストされた構造を持つ Html を解析するほどスマートではありません。少なくとも、絶望的に複雑な正規表現になってしまいます。

于 2012-12-19T15:45:53.247 に答える