2012-04-02 2 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, 나는 여기 사람들이 일반적으로 질문을하는 사람들이 우선 뭔가 좋은 것을주는 것을 선호하기 때문에 당신이 싫어했음을 기대한다. 지금 그걸 해보고 질문에 첫 번째 시도해 보시지 않겠습니까? ':)' – halfer

+0

나는 정규 표현식 행성에서 정규 표현식을 사용해 보았습니다. 나는 어떤 링크도받지 못한다. 나는 내 퀼 코드를 업데이트했다. – user1308342

답변

0

내가 생산에 my firefox add-on이 자바 스크립트 정규 표현식을 사용하고 있습니다 :

(?: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에는 파일 이름이 필요하기 때문에 파일 이름이 필요합니다.

관련 문제