<tr> <td> <a href="http://abc.com/v-9.html"></a> </td> </tr> 
<tr> <td> <a href="http://abc.com/v-8.html</a> </td> </tr> 用preg_replace 替换后成,<tr> <td> http://abc.com/v-9.html </td> </tr> 
<tr> <td> http://abc.com/v-8.html </td> </tr> 
preg_replace怎么写?

解决方案 »

  1.   

    $str = <<<TEST
    <tr> <td> <a href="http://abc.com/v-9.html"> </a> </td> </tr> 
    <tr> <td> <a href="http://abc.com/v-8.html" </a> </td> </tr> 
    TEST;echo preg_replace("/<a\s+href=\"([^<>\"]+)\">\s+<\/a>/im", "\\1", $str);
      

  2.   

    如果非要是你提供给的html的话,这样写$str = <<<TEST
    <tr> <td> <a href="http://abc.com/v-9.html"> </a> </td> </tr> 
    <tr> <td> <a href="http://abc.com/v-8.html </a> </td> </tr> 
    TEST;echo preg_replace("/<a\s+href=\"([^<>\"]+)[\">]*\s+<\/a>/im", "\\1", $str);
      

  3.   

    谢老大,$str值是上面的,你的第二个代码,结果就对了。怪我为了少写,没把问题讲清楚.我的<a>部份还有其它的字符.如,<a href="http://abc.com/v-9.html" onClick= "NewWindow( 'http://www.abc.com/v-9.html ',1255); return false;"> <img src= "../images/play.gif "border= "0 "></a>
      

  4.   

    $str = <<<TEST
    <tr> <td> <a href="http://abc.com/v-9.html"> </a> </td> </tr> 
    <tr> <td> <a href="http://abc.com/v-8.html" onClick= "NewWindow( 'http://www.abc.com/v-9.html ',1255); return false;"> <img src= "../images/play.gif "border= "0 "> </a> </td> </tr> 
    TEST;echo preg_replace("/<a\s+href=\"([^<>\"]+).*<\/a>/im", "\\1", $str);
      

  5.   

    // 粘贴下列代码为 一个php文件测试通过. (PHP5)<?php
    /*
    <tr> <td> <a href="http://abc.com/v-9.html"> </a> </td> </tr> 
    <tr> <td> <a href="http://abc.com/v-8.html </a> </td> </tr> 用preg_replace 替换后成, <tr> <td> http://abc.com/v-9.html </td> </tr> 
    <tr> <td> http://abc.com/v-8.html </td> </tr> 
    */$src='
    <tr> <td> <a href="http://abc.com/v-9.html"> </a> </td> </tr> 
    <tr> <td> <a href="http://abc.com/v-8.html </a> </td> </tr>';// 需要替换为空格的2个串的正则表达式.
    $pattern = "/(<a href=\")|([\" >]+<\/a>)/";$replace="";
    $matched = preg_match_all($pattern,$src,$matches);
    echo "<textarea style='width:600;height:300'>SRC=\n$src\n";
    echo "Matched: $matched";
    echo "\nResult=\n";
    $replaced=preg_replace($pattern,$replace,$src);echo $replaced."</textarea>"?>