Java 如何使用正则表达式解析链接

Java 如何使用正则表达式解析链接,java,regex,rapidshare,Java,Regex,Rapidshare,我正在做一个有超链接的项目。我需要在Java中解析字符串中的所有链接,但只解析链接 所有解析的链接都应该填充在一个数组中。我的代码如下所示: Matcher mat = Pattern.compile("(\"(.*?)\"|([^,]+)),?").matcher(html); 但它仍然有其他的括号和链接。我怎样才能让它工作 quellcode更新 Matcher mat = Pattern.compile("/href=\\\"(http://(www\\.)?rapidshare.com

我正在做一个有超链接的项目。我需要在Java中解析字符串中的所有链接,但只解析链接

所有解析的链接都应该填充在一个数组中。我的代码如下所示:

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));                 
}

我在生产中使用此javascript regexp:

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

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

为什么不检查一下您可以在哪里测试您的模式?还有其他一些模式可能会对您有所帮助。我将从一个正则表达式开始,比如:
/href=\“(http://(www\)?rapidshare.com/+)\”/
。正如@Joeblackdev所说,使用在线检查工具来纠正错误,并让我们知道你的想法!顺便说一句,我想你已经被否决了,因为这里的人通常更喜欢提问者先尝试一下。为什么现在不这样做,把你的第一次尝试加入到你的问题中<代码>:)我现在尝试使用来自regex planet的regex。我没有收到任何链接。我更新了我的quellcodeOK,之前我犯了几个错误-在线工具显示你不需要开始和结束字符(/),我错过了在
rapidshare.com
中转义点。因此,它将类似于
href=\“(http://(www\)?rapidshare\.com/+)\”
。但是不要只是复制我拥有的-使用在线工具调试它!
//    Copyright (C) 2008  JD-Team support@jdownloader.org
"http://[\\w\\.]*?rapidshare\\.com/files/\\d+/?(.*?)($|\\?)"