将[code]标签内的所有<br/>替换成#号

作者:enenba | 发表于:2012-04-06 10:12 | 分类:正则表达式

问:

现有一个字符串,如下:
$str = "sads<br>dsad[code]<br/>sdsadsadsad<br/>sfdsfdsfdsf[/code]dasd<br/>sad";

如何使用正则将[code]标签内的所有<br/>替换成#号,而[code]标签外部的<br/>和其他字符不用替换

我要的输出的结果结构如下([code]标签以外的内容原样输出):
"sads
dsad[code]#sdsadsadsad#sfdsfdsfdsf[/code]dasd
sad";

 

 

答: 

<?php
$str="sads<br>dsad[code]<br/>sdsadsadsad<br/>sfdsfdsfdsf[/code]dasd<br/>sad";
$pat="/\[code\](.*?)\[\/code\]/i";
function back($matches) {
	return preg_replace("/<br\/>|<br>|<br \/>/i","#",$matches[0]);
}
echo preg_replace_callback($pat,'back',$str);

?> 

 

end

 

 

 

上一篇: 采集侠正文提取原理观察   |   下一篇:一个URL格式正则的解释» 标签: 正则 正则匹配 正则表达式 php过滤

评论: