Preg替换不能替换此标签?

时间:2013-09-24 17:16:03

标签: php regex html-parsing

我正在使用此代码删除此标记之间的所有内容,但我无法实现。 我在这里缺少什么?

$str ='<tr class="main_row pc">
    <td class="details">
        <a href="./view/4135660/"><span class="p_t">Fiat Cinquecento </span></a>
        <a class="info" href="./view/4135660/">(Info)</a><br>
        <div class="attribs">16345, <span class="p_l">Blue</span>, Phone 6914576304
        </div>
    </td>
</tr>';


$str = preg_replace('#(<tr class="main_row pc">).*?(</tr>)#', '$1$2', $str);

3 个答案:

答案 0 :(得分:0)

您需要使用s修饰符,以便.符合换行符:

$str = preg_replace('#(<tr class="main_row pc">).*?(</tr>)#s', '$1$2', $str);

答案 1 :(得分:0)

虽然你在评论中已经受到了很多好处,但你需要一个pattern modifier。具体而言s使.与换行符匹配。所以:

preg_replace('#(<tr class="main_row pc">).*(</tr>)#s', '$1$2', $str);

至少根据上面发布的代码,你会做你需要的。

答案 2 :(得分:0)

您需要设置s PCRE修改器,以使RegEx中的点匹配换行符。