2011-12-21 2 views
0

HTML 양식을 구문 분석하고 포함 된 이미지의 파일 이름을 가져오고 싶습니다.자바에서 정규 표현식을 사용하여 문자열의 내용을 캡처하는 방법

{ 

가 ... 위부터 임의의 HTML 내용

image1.png 

more random HTML content 

    image3.png 

... }

가 나는를 작성하려합니다 : 같은

그래서 문자열을 볼 수 있었다 함수는 Java에서 나를 {image1.png, image3.png}으로 반환합니다.

마지막 이미지 이름 (image3.png) 만 반환하는 정규 표현식이 있지만 이전 이미지 이름은 무시합니다. 정규 표현식을 사용하여 모든 것을 어떻게 캡처 할 수 있습니까?

전체/모든 도움을 주시면 감사하겠습니다.

+0

이것은 [JSoup] (http : //)와 같은 구문 분석 API에 가장 적합한 작업입니다. jsoup.org/) 또는 [JTidy] (http://jtidy.sourceforge.net/). RegEx는 강력한 도구이지만 실제 WWW HTML에서 정보를 추출하는 데는 시간이 걸리고 또 다시 부족한 것으로 나타났습니다. –

답변

2

https://stackoverflow.com/a/2059614/684934 좋은 힌트를 제공합니다. 더 구체적으로, 아마도 당신은 뭔가를 찾고있을 것입니다. [a-zA-Z0-9_\-]+\.(png|jpg|gif|jpeg|tif)

그러나 정규식이며 문자의 시퀀스만을 찾고 있습니다. 예를 들어 서블릿을 사용하여 동적 이미지를 제공하는 사이트를보고 리소스 URI가 정상 이미지 파일 확장자 (예 : .jsp 또는 .do)로 끝나지 않으면 정규식이 완전히 실패합니다. 또한 일치하는 모든 종류의 텍스트에서 "이미지 이름"을 선택합니다. 실제로 페이지의 이미지를 나타내지는 않습니다.

작업을 제대로 수행하려면 DOM을 사용하고 <img> 요소를 탐색해야합니다. (그리고 요소의 유형은 image 일 수 있습니다. 이미지를 포함 할 수있는 태그가 더 많을 수 있습니다.)

+0

* "이미지를 가질 수있는 태그가 더 많습니다."* 배경 이미지. CSS를 사용하여 다양한 요소에 적용 할 수 있습니다. +1을 위해 * "제대로 일을하려면 일종의 DOM을 사용해야합니다"* (그리고 4x4 대표 점수를 깨뜨리는 것은 유감 스럽습니다.) –

관련 문제