比如有字符串
$str = '我认为:[TAG]你的观点(opinion1)![/TAG],他认为:[TAG]他的观点(opinion2)![/TAG]...';
用正则$p将所有[TAG][/TAG]标志及其间内容都替换成相同内容“PHP是世界上最好的语言”,
print preg_replace($p, 'PHP是世界上最好的语言', $str);
最后应为
$str = '我认为:PHP是世界上最好的语言,他认为:PHP是世界上最好的语言...';
求$p正则表达式,谢谢!
怎样用PHP正则替换特定标志及其间的字符呢?
答案:1 悬赏:60
解决时间 2021-02-18 07:46
- 提问者网友:长安小才冯
- 2021-02-17 08:54
最佳答案
- 二级知识专家网友:社会水太深
- 2021-02-17 09:03
你的第一个需求,是可以满足的
第二个需求,程序无法满足,因为程序不是人,不可能识别到丢失的右中括号在哪里结束
以下是已经运行通过的代码
$str = "【喜讯】全国——乐享周六【8点到18点】 世【界杯纪念】足球【大】放送";
$str = check($str);
echo $str;
function check($str){
if(strstr($str,'【') && strstr($str,'】')){
$str = change($str);
$str = check($str);
return $str;
}else{
return $str;
}
}
function change($str){
preg_match('/【(.*?)】/',$str,$result);
$last = str_replace($result['0'],'',$str);
return $last;
}
?>
第二个需求,程序无法满足,因为程序不是人,不可能识别到丢失的右中括号在哪里结束
以下是已经运行通过的代码
$str = "【喜讯】全国——乐享周六【8点到18点】 世【界杯纪念】足球【大】放送";
$str = check($str);
echo $str;
function check($str){
if(strstr($str,'【') && strstr($str,'】')){
$str = change($str);
$str = check($str);
return $str;
}else{
return $str;
}
}
function change($str){
preg_match('/【(.*?)】/',$str,$result);
$last = str_replace($result['0'],'',$str);
return $last;
}
?>
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯