我正在使用此代码删除此标记之间的所有内容,但我无法实现。 我在这里缺少什么?
$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);
答案 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中的点匹配换行符。