我正在开发一个包含超链接的项目。我需要解析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));
}
答案 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需要文件名。