-1

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

$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);
4

3 回答 3

0

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

$str = preg_replace('#(<tr class="main_row pc">).*?(</tr>)#s', '$1$2', $str);
于 2013-09-24T17:28:07.477 回答
0

虽然这是一个坏主意,就像您在评论中已经被反复提及的那样,但您需要一个模式修饰符。专门s用来.匹配换行符。所以:

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

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

于 2013-09-24T17:28:46.697 回答
0

您需要设置s PCRE 修饰符以使 RegEx 中的点也与换行符匹配。

于 2013-09-24T17:29:26.443 回答