如何使用Regex解析链接

时间:2012-04-02 15:16:11

标签: java regex rapidshare

我正在开发一个包含超链接的项目。我需要解析Java中字符串的所有链接,但只需要http://rapidshare.com个链接。

所有已解析的链接都应填入数组中。我的代码如下所示:

Matcher mat = Pattern.compile("(\"(.*?)\"|([^,]+)),?").matcher(html);

但它仍然得到其他单词括号和链接。我怎样才能使这个工作?

更新quellcode

Matcher mat = Pattern.compile("/href=\\\"(http://(www\\.)?rapidshare.com/.+)\\\"/").matcher(html);

while (mat.find()) {                        
    result.add(mat.group(2) == null ? mat.group(3) : mat.group(2));                 
}

1 个答案:

答案 0 :(得分:0)

我在生产中使用my firefox add-on中的这个javascript regexp:

(?:h..ps?://)?(?:www\.)?rapidshare\.com/files/([0-9]+)/([^\s<"/]{1,500})/?

受欢迎的JDownloader Java open source software正在使用此功能:

//    Copyright (C) 2008  JD-Team support@jdownloader.org
"http://[\\w\\.]*?rapidshare\\.com/files/\\d+/?(.*?)($|\\?)"

这两个正则表达式专门用于文件链接。它们需要文件名,因为API需要文件名。