2012-04-02 50 views
-4

我正在使用超鏈接的項目。我需要解析來自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

我從一個正則表達式開始:'/ href = \「(http://(www \。)?rapidshare.com /.+)\」/'。正如@Joeblackdev所說的那樣,使用在線檢查器來正確使用它 - 並讓我們知道你想出了什麼! – halfer 2012-04-02 17:29:52

+0

順便說一句,我希望你已經被低估了,因爲這裏的人們通常更喜歡提問者先給一些好東西。爲什麼現在不這樣做,並且將你的第一次嘗試加入你的問題? ':)' – halfer 2012-04-02 17:36:27

+0

我現在用正則表達式的正則表達式來嘗試。我沒有收到任何鏈接。我更新了我的quellcode – user1308342 2012-04-02 19:09:21

回答

0

我在生產中使用的my firefox add-on此javascript正則表達式:

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

流行JDownloader Java open source software使用此:

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

這兩個正則表達式專門用於文件鏈接。他們需要一個文件名,因爲API需要一個文件名。