2012-04-02 18 views
-4

私はハイパーリンクを使ってプロジェクトを進めています。私はJavaの文字列からすべてのリンクを解析する必要がありますが、http://rapidshare.comリンクのみです。Regexを使ってリンクを解析する方法

すべての解析されたリンクが配列で埋められます。私のコードは次のようになります:

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

+0

Btw、私はあなたがここで人々が一般的に何か良いことを最初に与える質問者を好むので、あなたがdownvotedされていると思う。それでは、なぜあなたの質問にあなたの最初の試みを追加してみませんか? ':)' – halfer

+0

私は正規表現の惑星から正規表現を試しました。私はどんなリンクも受け取らない。私のクェルコードを更新しました – user1308342

答えて

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+/?(.*?)($|\\?)" 

これらの2つの正規表現を特にファイルリンク用です。 APIにはファイル名が必要なため、ファイル名が必要です。

関連する問題