正規表現の経験が豊富な人の助けが必要です。ハイパーリンクの値を解析したい html コードがあります。ページ全体のコードは、以下の添付の html にあります。
http://dl.dropbox.com/u/4571235/example.html
ドキュメント内の各「価格比較」ボタンの後にハイパーリンクを取得したいと考えています。
どんなアドバイスも大歓迎です。前もって感謝します、 ラツィアーレ
正規表現の経験が豊富な人の助けが必要です。ハイパーリンクの値を解析したい html コードがあります。ページ全体のコードは、以下の添付の html にあります。
http://dl.dropbox.com/u/4571235/example.html
ドキュメント内の各「価格比較」ボタンの後にハイパーリンクを取得したいと考えています。
どんなアドバイスも大歓迎です。前もって感謝します、 ラツィアーレ
ここで確認してください。
このコードを試してください:
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);
}
ソース コードには他の URL もあることがわかりました。次の正規表現を提案できますが、「価格比較」テキストの直後に関心のある URL が続く場合にのみ正しく機能します (つまり、 「正しい」ものの間の他のURL)。一致する URL のない「価格比較」テキストがある場合、いくつかのルールに基づいて正規表現を変更する必要があります。
value="Compare prices"(?:.*?)<a\s+href="([^"]*?)"
URL は一致するグループ 1 に含まれます。
通常、リンクは「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 を実行できる場合は、特定のタイプのすべての属性を取得して、それらに対して正規表現を実行することもできます。