日期:2014-05-17  浏览次数:20529 次

请教一个正则问题这么写问什么匹配不对

<?php
    $str = file_get_contents("http://mil.news.sina.com.cn");
// 军情热点
    $reg = '#【军情热点】.*<a.*href="(.*).*>(.*)</a>"#iUs';
preg_match_all($reg,$str,$m);
echo "<pre>";
print_r($m);
?>


请教一下  匹配一下链接和标题 这么写为什么不对

------解决方案--------------------
$str = file_get_contents("http://mil.news.sina.com.cn");
// 军情热点
$reg = '#【军情热点】.+?href=(\S+)#is';
preg_match_all($reg,$str,$m);
print_r($m);
Array
(
    [0] => Array
        (
            [0] => 【军情热点】</font></a><a href=http://blog.sina.com.cn/s/blog_69710d610101fglf.html?tj=1
        )

    [1] => Array
        (
            [0] => http://blog.sina.com.cn/s/blog_69710d610101fglf.html?tj=1
        )

)

------解决方案--------------------
引用:

<?php
$str = file_get_contents("http://mil.news.sina.com.cn"); 
$reg = '#(?<=【军情热点】).*<a.+href="(.+)".+>(.+)</a>(?=名家专栏)#isU'; 
preg_match_all($reg,$str,$m); 
echo "<pre>";
print_r($m); 

?>



我试着这样写了一下 也不对呢  请大家帮忙看一下

它的连接不包括引号
$reg = '#(?<=【军情热点】).*<a.+href=(.+)\s*target=\_blank>(.+)</a>(?=名家专栏)#isU'; 
------解决方案--------------------

$s_html = file_get_contents("http://mil.news.sina.com.cn");
$s_html = iconv('gbk', 'utf-8', $s_html);

$s_gd_reg = '#【军情热点】(.*)</ul>#iUs';
$a_gd_match = array();
preg_match_all($s_gd_reg, $s_html, $a_gd_match);