PHP正则替换,指定字符串之间的字符串

使用 str_replace 正则实现去除字符串中指定字符之间的内容。比如:
$str = "【喜讯】全国——乐享周六【8点到18点】 世界杯纪念足球大放送";
想要把 字符串中,中括号之间的内容包括中括号都去掉(中括号之间内容是不固定的)
得到:
$str2 = "全国——乐享周六世界杯纪念足球大放送";

希望高手能帮下忙!
还有 需要防止只有单边中括号时清空括号右或者括号左的内容,比如
乐享周六【8点到18点世界杯纪念足球大放送

防止得到半括号右边全被清除的结果:
乐享周六

你的第一个需求,是可以满足的

第二个需求,程序无法满足,因为程序不是人,不可能识别到丢失的右中括号在哪里结束


以下是已经运行通过的代码

<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;
}
?>

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-17
太纷扰,只会让失去的那份纯真.祭奠了凄凉。有些事,我们都太过于执着。只要生命还有一口气,那些执念就将永生,

php 替换指定字符串中,两个字符串之间(包括这两个字符串)之间的内容
方法是找到这两个特殊字符串的位置,然后使用substr删除中间部分,例子代码:str='...你要处理的字符串...';s1='...开始字符串...';s2='...结束字符串...';i1=strpos($str,$s1);\/\/开始位置 i2=strpos($str,$s2);\/\/结束位置 if ($i1!==false && $i2!==false)\/\/找到 str=sub...

php如何替换字符串中的指定字符
pattern参数是你定义的正则搜索模式,replacement是你希望替换成的字符串或数组,subject是被操作的字符串,limit和count则分别用于指定替换次数(默认为-1表示无限替换,count可选用于获取替换次数)。例如,你可以使用preg_replace("\/raykaeso\/", "leixuesong", "原始字符串")来替换匹配到的"raykaeso"。

php中正则匹配字符串中的指定字符
<?php$str = "0502-cpd-wx-html-new-01";$str = preg_replace('\/^([^\\-]+\\-){4}([^\\-]+)\\-[^\\-]+$\/','$2',$str);echo $str;?>

...指定开头字符串和指定结束字符串之间的一段字符串。
preg_match('\/yu.*cv\/',$temp1,$m);echo $m[0];

php如何替换字符串中的指定字符
PHP可以通过使用str_replace函数替换字符串中的指定字符。以下是对该函数的 1. str_replace函数的基本用法:PHP中的str_replace函数用于替换字符串中的一个或多个字符。其基本语法是:str_replace。其中,search参数是需要被替换的字符或字符串;replace参数是替换后的新字符或字符串;subject参数是原始字符...

php用正则表达式怎么获得两个字符串之间字符
把要获得的正则表达式部分加上括号,然后看preg_match第三个参数,括号是第几个,获得的内容就在$matches中的索引就是几.比如:<?php subject = 'abcd123def';$pattern = '\/(\\w)(\\d+)(\\w)\/';preg_match(pattern,subject,matches );var_dump (matches );\/\/ 自己看 ...

php正则截取指定符号之间的字符串?
按照你的要求截取第一个【和最后一个】之间的字符串的php程序如下 (用正则表达式中的贪婪匹配模式,取第一捕获组的数据)<?php str="击链器【到手】得理多】";regex="\/【(.*)】\/";preg_match_all($regex,$str,$result);echo $result[1][0];?> ...

如何用php替换特殊字符及之后的字符串。例如$url中间有空格,我想去掉空 ...
任务:删除字符串空格及其之后的所有内容 方法一:用正则表达式,正则模式为\/[\\s+].*$\/,示例语句:echo preg_replace('\/[\\s].*$\/', '', $url);方法二,使用substr,示例语句:echo substr($url, 0, strpos($url,' '));

PHP字符串替换技巧
preg_replace()是PHP中正则表达式的字符串替换函数。对于符合正则表达式的字符串,可以使用此函数进行替换。其函数原型如下:其中,$pattern代表要匹配的正则表达式,$replacement代表要替换成的内容,$subject代表要替换的原字符串,$limit代表替换的次数,$count代表替换的次数。具体使用方法如下:如下代码中,...

写一个正则替换,替换字符串中的,,||字符为空格
<?php str = ' 河北,石家庄,北京,上海|天津|||重庆|保定,,,河南 ';str = preg_replace("\/([ ,,||]+)\/u", " ", $str);str = ltrim(rtrim($str));print_r($str);?>

相似回答