2012-11-01 2 views
0

원격 HTML 파일이 있고 그 테이블을 추출하고 있습니다. 이제이 테이블에서 개별 행을 가져 오기 위해 정규 표현식을 사용하려고합니다. HTML에서 테이블에서 행을 가져 오는 줄 바꿈을위한 PHP 정규식

<tbody style="text-align: left;"> 
<tr class=" even" style="text-align: left;"> 
<td style="text-align: left;"><a href="http://www.sdfkhy.com/%7Epbdsfby">TEXT1 </a></td> 
<td style="text-align: left;">TEXT2</td> 
<td style="text-align: left;">TEXT3</td> 
</tr> 
<tr style="text-align: left;"> 
<td style="text-align: left;"><a href="http://www.JDKSF.COM/index.html">TEXT3</a><br /><span class="style3">TEXT4</span></td> 
<td style="text-align: left;">TEXT5</td> 
<td style="text-align: left;">TEXT6</td> 
</tr> 
</tbody> 

나는 다음과 같은 시도 :

#<tr[^>]*>(\r\n.*)*</tr># 
#<tr[^>]*>(.*?)*</tr># 
#<tr[^>]*>(.*)*</tr># 

그리고 이들 중 아무도이 제대로 작동

다음은이 테이블의 샘플 형식입니다. 나는 태그와 태그 사이의 모든 것을 개별적으로 배열로 가져와야합니다. 도와주세요.

EDIT : 요구 사항에 따라 REGEX를 사용해야하므로 DOM PARSER를 사용하지 마십시오.

+0

정규식을 사용하여 html을 구문 분석하지 마십시오. 정규식은 html을 구문 분석하지 않았습니다. php의 DOMDocument와 같은 기존 라이브러리를 사용하십시오. – Daedalus

+0

시도해보십시오 :'$ re = '% ] *> (. *?) %는';'입니다. 그러나 중첩 된 테이블이있는 경우에는 작동하지 않습니다. – ridgerunner

답변

1

는 HTML 파일

을 구문 분석에 대한 정규식을 사용하지 마십시오

HTML은 엄격하지 않습니다 ..

Regex가 정규 일관된 표현에 사용된다 (예를 들어, 때로는 HTML 태그를 닫을 수 있습니다 때로는 그것을 나던) 아니요 불규칙한 표현

DOMDocument->loadHTML()을 사용하여 HTML을 구문 분석하십시오.

것은 나에게 믿어은 당신이 위험 여기

를 취할 준비가되어있는 경우 regex


를 사용하는 것보다 구문 분석 HTML로 망할 간단합니다

/<tr.*?>(.*?)</tr>/ 

사용에 대한 정규식 s (PCRE_DOTALL) 옵션

+0

나는 그것이있다라는 것을 알고있다. 그러나, 엄격한 요구 사항으로 인해, 나는 정규식을 사용해야합니다. – user1790263

+0

@ user1790263 edit..use 옵션을 확인하십시오. 즉, – Anirudha

+1

과 일치하는 dotall 옵션 귀하의 요구 사항은 귀하의 작업을 고려하여 이해가되지 않습니다. –

관련 문제