0

我想从对正则表达式更有经验的人那里得到一些帮助。我有 html 代码,我想从中解析超链接的值。整个页面的代码可以在下面附加的 html 中找到:

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

我想在文档中的每个“比较价格”按钮之后获取超链接。

欢迎任何建议。提前致谢, Laziale

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 的“比较价格”文本,则需要根据某些规则更改正则表达式。

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

该 url 将在匹配组 1 中。

于 2012-04-24T18:46:53.410 回答
0

通常链接在“a 标签”、“a link”或“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 回答