试一下这个$s = '<tr><td> 2007-10-10 </td> <td> 18500元/平方米 </td> <td> 13900元/平方米 </td> <td> &nbsp; </td> <td> 7号楼将于10月20日正式开盘,共计95套房源。 </td></tr> ';preg_match_all("/<tr>.*<td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td><td>(.*)</td>.*</tr>/is", $s, $res);print_r($res);
得有tr才行

解决方案 »

  1.   

    楼上的太敷衍了,随便多个td少个td就不行了。而且如果针对第一种情况,取到的会是<font   color= "Black "> 2007-10-18 </font> 之类的==========================================================================================报告楼主,类似的问题我问过,第一种和第二种只能分开写正则,一个正则不能针对两种情况得到最优解,我后来是通过字符串函数解决的,但是我的那种情况跟你的又不同,你的用字符串解起来貌似很费劲,所以陪楼主等高手了。
      

  2.   

    $str = '<td> <font   color= "Black "> 2007-10-18 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 17000元/平方米 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 别墅均价 </font> </td> 
    或 
    <td> 2007-10-10 </td> <td> 18500元/平方米 </td> <td> 13900元/平方米 </td> <td> &nbsp; </td> <td> 7号楼将于10月20日正式开盘,共计95套房源。 </td>';$str = htmlspecialchars(strip_tags($str));
    echo $str;
      

  3.   


    <?php
    # Dom 实现,仅供参考
    $html= <<<EOF
    <td> <font   color= "Black "> 2007-10-18 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 17000元/平方米 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 别墅均价 </font> </td> 
    或 
    <td> 2007-10-10 </td> <td> 18500元/平方米 </td> <td> 13900元/平方米 </td> <td> &nbsp; </td> <td> 7号楼将于10月20日正式开盘,共计95套房源。 </td> 
    EOF;
    $doc = new DOMDocument();
    $doc->loadHTML($html);
    $tags = $doc->getElementsByTagName('td');
    foreach ($tags as $tag) {
           echo $tag->nodeValue."\n";
    }
    ?>
    正则正在写……
      

  4.   

    只假设你的第一种<td>和第二种<td>不是混合在一个<tr>中,如在一个TR中,那这两种情况的分割标志又是什么?参考代码://$s = '<td> <font   color= "Black "> 2007-10-18 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font 
      color= "Black "> 17000元/平方米 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black
     "> 别墅均价 </font> </td>';
    $s = "<td> 2007-10-10 </td> <td> 18500元/平方米 </td> <td> 13900元/平方米 </td> <td> &nbsp; </td> <td> 7号楼将于10月20日正式>
    开盘,共计95套房源。 </td>";
    if (preg_match_all("/<td>(.*?)<\/td>/is",$s,$m)) {
        $result = array_map("strip_tags",$m[1]);
    }
    print_r($result);
      

  5.   

    <script language="javascript">
    var s= '<td> <font   color= "Black "> 2007-10-18 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 17000元/平方米 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 墅均价 </font> </td>'alert(s.replace(/<[^>]*>/g,"\n").split("\n"))
    </script>php不会,只要把<>和<>里的东西全替换掉就行了,很简单的
      

  6.   

    $s='<td> <font   color= "Black "> 2007-10-18 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 17000元/平方米 </font> </td> <td> <font   color= "Black "> &nbsp; </font> </td> <td> <font   color= "Black "> 别墅均价 </font> </td> ';
    $s=ereg_replace("<[^>]*> ","", $s);这个最好to SysTem128 :思路不错,不过就是有乱码!