2010-03-30 2 views
1

좋아요. 모든 사람들이 HTML 구문 분석을 위해 RegEx를 사용하지 말라고 말하고 있지만 Android에서는 프로그래밍 중이며 HTML 파서에 대한 액세스 권한이 없습니다. (내가 알고있는). 게다가, 이것은 서버 생성 HTML이고 이 사용자 생성 HTML보다 일관성이 있어야합니다.자바 정규식을 사용하여 HTML 디렉토리 목록의 링크를 구문 분석하려고 시도합니다.

정규식은 다음과 같습니다

Pattern patternMP3 = Pattern.compile(
     "<A HREF=\"[^\"]+.+\\.mp3</A>", 
     Pattern.CASE_INSENSITIVE | 
     Pattern.UNICODE_CASE); 
Matcher matcherMP3 = patternMP3.matcher(HTML); 
while (matcherMP3.find()) { ... } 

입력 HTML은 모든 문제를 일으키는 하나 개의 라인에 있습니다. HTML이 별도의 줄에 있으면이 패턴이 작동합니다. 어떤 제안?

+0

당신은 링크의 예를 들어 줄 수 있을까? – Jens

답변

1

. mp3를 후 정규식

"<A HREF=\"([^\"]+)\"[^>]*>([^<]+?)\\.mp3</A>" 

을 큰 따옴표를 잊지 t이없는 그는 링크하고 그 그룹의 파일 이름. href의 인수는 필연적으로 html로 따옴표로 묶을 필요는 없습니다. (또는 브라우저가 필요하지 않으면 개발자도 =를 알지 못합니다.))

+0

+1, 나는 여기서 [[^ <] +'욕심을 꾼다. – Qtax

+0

멋지다.이게 효과가있는 것처럼 보인다. 감사! –

0

당신은 일치되어서는 안된다 '+.'당신은 이미 [^ \ "] + (특정 상황에 대한 더 나은됩니다)

봅니다있어 이후 :. 또한

"<A HREF=\"[^\"]+\\.mp3\"</A>" 

을 , 당신의 연결과 일치해야합니다

+0

일치하지 않습니다.

관련 문제