2013-05-15 2 views
0

정규 표현식이 생소하고 실제로 사용하기에는 어려움이 있습니다.preg_match_all이 작동하는 데 문제가 있음

나는 다음과 같은 HTML 사이에있는 페이지에서 몇 가지 정보 잡으려고 노력하고있어 : 내가 해봤

<!--webbot bot="Include" U-Include="/inspections/Restaurants_Avalon.html" TAG="BODY" startspan --> EVERYTHING IN BETWEEN<!--webbot bot="Include" i-checksum="41417" endspan -->

:

$pattern = '/<.*?webbot bot=\"Include\" U-Include=\".*?\".*?startspan.*?(.*?)<.*?webbot bot=\"Include\" i-checksum=\".*?\" endspan.*?/i'; 

과 몇 가지 다른 다스 변화를 그러나 나의 명백한 부족한 경험과 정규 표현에 대한 이해는 표현보다는 규칙적인 겉 껍데기를 만들었습니다.

누군가가 모양을 가지고 내가 뭘 잘못하고 있다고 말할 수 있습니까?

감사합니다. 액션

startspan -->(.*?)<!--webbot 

의해

startspan.*?(.*?)<.*?webbot 

:

답변

0

그냥이 부분을 변경

$str = '<!--webbot bot="Include" U-Include="/inspections/Restaurants_Avalon.html" TAG="BODY" startspan --> EVERYTHING IN BETWEEN<!--webbot bot="Include" i-checksum="41417" endspan -->'; 

$pat = '/<.*?webbot bot=\"Include\" U-Include=\".*?\".*?startspan -->(.*?)<!--webbot bot=\"Include\" i-checksum=\".*?\" endspan.*?/i'; 

preg_match($pat, $str, $m); 
print_r($m); 

출력 :

Array 
(
    [0] => <!--webbot bot="Include" U-Include="/inspections/Restaurants_Avalon.html" TAG="BODY" startspan --> EVERYTHING IN BETWEEN<!--webbot bot="Include" i-checksum="41417" endspan 
    [1] => EVERYTHING IN BETWEEN 
) 
012,
+0

작동하지 않았습니다. emtpy 배열을 다시 받았다. 어레이 ( [0] => 배열 ( ) [1] => 배열 ( ) ) –

+0

가 또한 시도! $ 패턴 = '/ <- WebBot은 봇 = \ "\ 포함" U-Include = \ ". *?" TAG = \ "BODY \"startspan -> (. +?) /is '를 포함하십시오. –

+0

방금 ​​인용문 앞에 \를 쓰지 않은 것으로 나타났습니다. 추가 할 때 여전히 작동하지 않았습니다. –

관련 문제