2012-04-13 4 views
0

저는 (1) 다른 HTML 문서, (2) .jpg, .png 및 .png와 같은 이미지 파일에 대한 링크를 추출하려고하는 다양한 HTML 문서가 있습니다. .bmp. 나는 이것을하기 위해 정규 표현식이 필요하고 그것을 이해하는 것처럼 보이지 않습니다. =이미지와 HTML 문서를 추출하기 위해 정규식이 필요합니다.


IMG 스타일 :

HTML 페이지의 각

다음과 유사한 코드 것 "MARGIN-BOTTOM : 20 픽셀; MARGIN-LEFT를 : 20 픽셀"= 바로 SRC를 정렬 = "이미지/sample001합니다. JPG ">

IMG 스타일 ="MARGIN-BOTTOM : 25 픽셀; MARGIN-LEFT은 : 25 픽셀 이미지/sample002.png ">

IMG 스타일 ="MARGIN-BOTTOM "= 바로 SRC = 정렬": 20 픽셀을; 여백 왼쪽 : 20 픽셀 "align = 오른쪽 src ="images/sample003.bmp ">

HREF = "자바 스크립트 : parent.POPUP ({URL 'testDoc001.htm'타입 '공유', 폭 : 600, 높이 : 645})">

HREF = "자바 스크립트 : parent.POPUP ({URL 'testDoc002.html'타입 '공유', 폭 : 700, 높이 : 712}) "예로서>


상기 HTML에서 동작하고 생성 할 정규식 얻어진 어레이 :

이미지/sample001.jpg

이미지/sample002.png

이미지/sample003.bmp

testDoc001.htm

testDoc002.html이

누군가가 나를 도울 수 있습니까? 정말 고마워.

답변

1

HTML을 정규식으로 구문 분석 할 때 발생할 수있는 좌절감과 버그를 줄이십시오. HTML Agility Pack과 같은 HTML 구문 분석기를 사용하십시오.

+0

나는 정규식과 HTML [드물게 함께] (http://stackoverflow.com/a/1732454/89391)에 동의하지만, 정규식을 사용한 링크 추출과 같은 것은 괜찮다고 생각합니다. – miku

+0

@miku : 내 경험에 따르면, 테스트 한 작은 하위 집합에서 작동하도록 만들 수 있습니다. 그리고 몇 가지 새로운 구조가 따라 와서 깨뜨립니다. HTML 구문 분석기를 사용하면 코드가 더 일찍 처리 될 수 있으며, 결과는 더 안정적이며 변화하는 조건에보다 잘 대처할 수 있다는 것을 알게되었습니다. 그러나 귀하의 마일리지는 다를 수 있습니다. –

0

아마 이미지의 선 (사용 그룹)을 따라 뭔가 다음 팝업이 같은

IMG[^>]*src="([^"]*)" 

뭔가 :

url:'([^']*)' 
+0

내 코드에 넣어 : pattern = @ "IMG [^>] * src = '([^'] *) '"; 아무 것도 돌아 오지 못했습니다.나는 넣었다 : pattern = @ "url : '([^'] *) '"; 그리고 그것은 내게 준 : "url : 'testDoc001.htm'"및 "url : 'testDoc002.thml'"이 정규 표현식을 수정하는 방법에 대한 아이디어가 있습니까? –

+0

현재 : 어떤 언어를 사용하고 있습니까? – miku

+0

나는 C#, WPF, VS2010을 사용하고있다 –

0

(Perl)

my $x = "your html"; 

#$1 - is a first group in match - (.+\.(jpg|png)) 
while ($x =~ /<img .* src="(.+\.(jpg|png))"/ig) { 
    print "$1\n"; 
} 

while ($x =~ /<a(.)* href=".*url:('|")(.+\.htm(l)?)('|").*/ig) { 
    print "$3\n"; 
} 

출력 :

images/sample001.jpg 
images/sample002.png 
testDoc001.htm 
testDoc002.html 

regexps '에 <img .* src="(.+\.(jpg|png))"<a(.)* href=".*url:('|")(.+\.htm(l)?)('|").* 대부분의 언어에서 유사하다. ig은 검색에서 대/소문자를 구분하지 않고 여러 일치를 정의합니다.

관련 문제