$str="......";
preg_match('/<SPAN style="FONT-SIZE: 12px">(.*?)</SPAN>/ix', $str, $post);echo $post[1];//输出(.*)

解决方案 »

  1.   

    多谢marse。
    但我是要循环多个页面的,所以<SPAN style="FONT-SIZE: 12px">(.*?)</SPAN>没唯一性。我是这样做的:
    eregi('emailtofriend3.gif(.*)<TR><TD bgColor=#ffff00 height=25>', $page, $post2);这是唯一性:<TR><TD bgColor=#ffff00 height=25>但不知道是<TR>及<TD bgColor=#ffff00 height=25>之间有什么字符存在,所以取不到数据。
      

  2.   

    eregi('emailtofriend3.gif(.*?)<TR><TD bgColor=#ffff00 height=25>', $page, $post2);
    or:
    eregi('emailtofriend3.gif([^<]*)<TR><TD bgColor=#ffff00 height=25>', $page, $post2);(但是这里面不能有<BR>之类的)
      

  3.   

    <TR>
                          <TD bgColor=#ffff00 height=25>
    在网页上看到是这样的。所以用上面的方法老是不行的。
      

  4.   

    可能还需要你自己仔细研究一下,具体情况具体分析
    http://www.aka.org.cn/Lectures/001/Lecture-6/PerlReg_8rule.html
    这个讲正则比较详细
      

  5.   

    试试:
    preg_match_all('/[^\<SPAN style=\"FONT\-SIZE\: 12px\"\>]([[:alpha:]_-\s[:punct:]]*)<\/SPAN>/',$str, $match);
    print_r($match);
      

  6.   

    我是要循环多个页面的,所以<SPAN style="FONT-SIZE: 12px">(.*?)</SPAN>没唯一性。我是这样做的:
    eregi('emailtofriend3.gif(.*)<TR><TD bgColor=#ffff00 height=25>', $page, $post2);这是唯一性:<TR>
    <TD bgColor=#ffff00 height=25>但不知道是<TR>及<TD bgColor=#ffff00 height=25>之间有什么字符存在,所以取不到数据。
      

  7.   

    通配符(.)匹配除换行符之外的每一字符.所以正则表达式遇到第一个换行符时就陷入困境,进而就在那儿停止进行匹配.
    试试看这个
    preg_match('/<SPAN style="FONT-SIZE: 12px">(.*?)</SPAN>/ixs', $page, $post2);
      

  8.   

    刚刚错了
    preg_match('/'emailtofriend3.gif(.*?)<TR><TD bgColor=#ffff00 height=25>/is', $page, $post2);
      

  9.   

    又错了
    preg_match('/emailtofriend3.gif(.*?)<TR><TD bgColor=#ffff00 height=25>/is', $page, $post2);