21,886
社区成员
发帖
与我相关
我的任务
分享
$str = '
[normal text here]加粗红色[color=#0000FF]蓝色红色[/color][/not match]
';
$re = ?
$result = preg_replace($re, $replace, $str);
print_r($result);
结果为:
[normal text here]加粗红色蓝色红色[/not match]
<?php
$str = '
其他文本其他文本 <div>仅单层 </div> </div>(注意:后面多一个 </div>)
其他文本其他文本其他文本
<div>外层
<div>中层
<div>内层 </div>
</div>
</div>
# 这是另一种情况
# start 闭合错误
<div>外层
<div>中层
<div>内层 </div>
</div>
</font>
# end 闭合错误
其他文本 <font>外层 <span>里层 </span> </font>其他文本其他文本……
';
$re = "/<([a-z]+)[^>]*>([^<>]|(?R))*<\/\\1>/is";
preg_match_all($re,$str,$matches);
print_r($matches[0]);
echo PHP_VERSION; // 5.2.5
?>
<?php
//*
$str = '
其他文本其他文本 <div>仅单层 </div> </div>(注意:后面多一个 </div>)
其他文本其他文本其他文本
<div>外层
<div>中层
<div>内层 </div>
</div>
</div>
其他文本 <font>外层 <span>里层 </span> </font>其他文本其他文本……
';
$re = "#<[a-z]([^ >]+)[^<>]*>([^<>]*|(?R))*</[^<>]+>#is";
//*/
preg_match_all($re,$str,$matches);
print_r($matches[0]);
?>