小弟我原来是用python的,最近要用php写一点东西,发现这两个的正则有点不同想问一下,怎么从一个字串里匹配出自己要的字符比如<th class="tdc1" style="white-space:nowrap;">2009-8-19 星期三</td>我想得到“2009-8-19 星期三”这个字串,正规怎么写?最好是poix风格和perl风格都给个例子,谢谢

解决方案 »

  1.   

    <?php
    $str = '<th class="tdc1" style="white-space:nowrap;">2009-8-19 星期三 </td>';
    preg_match_all("|<[^>]+>(.*)</[^>]+>|U", $str, $matches);
    echo $matches[1][0];
    ?>
      

  2.   

    或者:
    <?php
    $str = '<th class="tdc1" style="white-space:nowrap;">2009-8-19 星期三 </td>';
    preg_match_all("/<.*>(.*)<\/.*>/", $str, $out);
    echo $out[0][0];
    ?>
      

  3.   


    <?php
        $str = '<th class="tdc1" style="white-space:nowrap;">2009-8-19 星期三 </td>';
        preg_match("/(?<=\">).*?(?=<\/td>)/", $str, $out);
        echo $out[0];
    ?>
      

  4.   

    $str = '<th class="tdc1" style="white-space:nowrap;">2009-8-19 星期三 </td>';
    poix:
    eregi("<th[^>]+>(.*)</td>",$str,$match);
    prel:
    preg_match("/<th[^>]+>(.*)</td>/i",$str,$match);