2011-01-24 3 views
0

내가 앵커 "<h2>Highlights</h2>" &
사이에서 내용을 긁어 정규식을 사용하려고 해요을 폐기 할 때 "</div><div class="FloatClear"></div><div id="SalesMarquee">"아래의 HTML 세그먼트 내에서 :정규식 문제 HTML 세그먼트

하지만이 정규식을 시도 할 때, 아무 것도 반환하지 않습니다. 나는 그것이 HTML 소스 내의 빈 공간이 함께 할 수있는 뭔가가있을 수 있습니다 생각 ..

<h2>Highlights<\/h2>\t?\n?\s?\S?(.*?)<\/div> 

...

어떤 정규식 전문가 나에게 엄마를 줄 수 위에서 언급 한 HTML 어어 스터 (HTML 소스의 빈 공간에도 대응할 수있는)와 같은 모든 HTML 어어 스터들 사이의 모든 것을 잡아 내기위한 멋진 표현? 정규식 내가 구입 한 스크립트와 같이

은 BTW 나는 (내가에 정규식을 입력해야 바로 텍스트 상자가)

많은 감사

어떤 PHP 코드를 사용할 수 없습니다 HTML 세그먼트 :

<div id="Highlights"> 

     <h2>Highlights</h2> 

     <ul> 

<li>1234</li> 

<li>abc def asdasd asdasd</li> 

<li>asdasda as asdasdasdas </li> 

<li>asdasd asdasdas asdsad asdasd asa</li> 

</ul> 


    </div> 

    <div class="FloatClear"></div> 

    <div id="SalesMarquee"> 

     <div id="SalesMarqueeTemplate" style="display: none;"> 

답변

1

를 사용하여 모든 HTML DOM 파서

// Create DOM from URL or file 
$html = file_get_html('http://www.example.com/'); 

// Find all links 
foreach($html->find('a') as $element) 
     echo $element->href . '<br>'; 
+0

감사하지만 그건 내 문제를 해결하지 못합니다! – user587064

+0

@ user587064 : 시도해 보셨습니까? – NAVEED

0

다음 pcre 정규식이 작동합니다.

/<h2>.*<\/h2>(.*)<\/div>/is 

마지막 두 문자는 무시할 경우 i이고 점 전체 모드 인 경우 i입니다. Dot all 모드는 점 매칭 개행을 만듭니다.

편집 : 당신은 아마 대신 정규식을 할 것입니다 :

hlindset에서 제공하는 정규 표현식에에 '복'에 대한 (에 'm'변경을 추가
/<h2>Highlights<\/h2>(.*)<\/div>.*<div class="FloatClear">/is 
+0

고마워 hlindset,하지만 작동하지 않습니다 ... 나는 여기 그것을 시도 : http://www.rubular.com/r/nWJQTgYLQ9 – user587064

+0

Rubular.com은 루비 regexes이며, 몇 가지 차이점이 있습니다. 예를 들어, 다음과 같이 개행과 일치하는 점을 얻으려면/대신/im을 사용하여 끝내야합니다. http://www.rubular.com/r/48jKU6y74T – hlindset

0

시도 : 여기를

/<h2>Highlights<\/h2>(.*)<\/div>.*<div class="FloatClear">/ism 

012 : 행동에

모든 수정 자에 대한 문서는 "pcre pattern modifiers"로 검색 할 수 있습니다.