0

正規表現の経験が豊富な人の助けが必要です。ハイパーリンクの値を解析したい html コードがあります。ページ全体のコードは、以下の添付の html にあります。

http://dl.dropbox.com/u/4571235/example.html

ドキュメント内の各「価格比較」ボタンの後にハイパーリンクを取得したいと考えています。

どんなアドバイスも大歓迎です。前もって感謝します、 ラツィアーレ

4

3 に答える 3

1

ここで確認してください。

このコードを試してください:

public static bool isValidUrl(ref string url)
{
    string pattern = @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$";
    Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
    return reg.IsMatch(url);
}
于 2012-04-24T18:37:39.830 に答える
0

ソース コードには他の URL もあることがわかりました。次の正規表現を提案できますが、「価格比較」テキストの直後に関心のある URL が続く場合にのみ正しく機能します (つまり、 「正しい」ものの間の他のURL)。一致する URL のない「価格比較」テキストがある場合、いくつかのルールに基づいて正規表現を変更する必要があります。

value="Compare prices"(?:.*?)<a\s+href="([^"]*?)"

URL は一致するグループ 1 に含まれます。

于 2012-04-24T18:46:53.410 に答える
0

通常、リンクは「a タグ」、「a リンク」、または「img src="url」
にあります。a href タグにある場合は、有効な a href をチェックしてから、それらに対して検証を実行できます。手始めに...
0. まず、ボタンが含まれているフォーム内のすべての内部 html を取得します。
1. 次に、さらなる検査のために a href タグだけを取得します... pattern="<a[^>]*> " or pattern="<link[^>]*>" or pattern="<img[^>]*>"
2. 次に、各タグについて、リンク、src、および href タグを引き出します
。 3. 次に確認しますURL が有効な場合
注: ステップ 0 を実行できる場合は、特定のタイプのすべての属性を取得して、それらに対して正規表現を実行することもできます。

于 2012-04-24T18:56:31.683 に答える