2013-05-15 26 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'; 

和一些其他的36种但是我对正规表达的明显缺乏经验和理解,只是造成了常规的混乱而不是表达。

有人可以看看,并告诉我我做错了什么?

谢谢!通过

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 
) 
+0

没有工作。只收到一个emtpy数组。阵列 ( [0] =>数组 ( ) [1] =>数组 ( ) ) –

+0

也试过:$图案=“/ < - 的WebBot BOT = \ “包含\” U型包括= \ “*?” TAG = \“BODY \”startspan - >(。+?)<! - webbot bot = \“Include \”i-checksum = \“。*?\”endspan - >/is'; –

+0

刚注意到我没有在报价前加\。添加时仍然不起作用。 –