PHP正则替换,指定字符串之间的字符串
使用str_replace正则实现去除字符串中指定字符之间的内容。比如:$str="【喜讯】全国——乐享周六【8点到18点】世界杯纪念足球大放送";想要把字符串中,中括号...
使用 str_replace 正则实现去除字符串中指定字符之间的内容。比如:
$str = "【喜讯】全国——乐享周六【8点到18点】 世界杯纪念足球大放送";
想要把 字符串中,中括号之间的内容包括中括号都去掉(中括号之间内容是不固定的)
得到:
$str2 = "全国——乐享周六世界杯纪念足球大放送";
希望高手能帮下忙!
还有 需要防止只有单边中括号时清空括号右或者括号左的内容,比如
乐享周六【8点到18点世界杯纪念足球大放送
防止得到半括号右边全被清除的结果:
乐享周六 展开
$str = "【喜讯】全国——乐享周六【8点到18点】 世界杯纪念足球大放送";
想要把 字符串中,中括号之间的内容包括中括号都去掉(中括号之间内容是不固定的)
得到:
$str2 = "全国——乐享周六世界杯纪念足球大放送";
希望高手能帮下忙!
还有 需要防止只有单边中括号时清空括号右或者括号左的内容,比如
乐享周六【8点到18点世界杯纪念足球大放送
防止得到半括号右边全被清除的结果:
乐享周六 展开
2个回答
展开全部
你的第一个需求,是可以满足的
第二个需求,程序无法满足,因为程序不是人,不可能识别到丢失的右中括号在哪里结束
以下是已经运行通过的代码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$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;
}
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询