救急,求正则达人.... <a href="">中华人民共和国中华人民共和国\n</a>\n\n或者 <a href="">\n中华人中华人民共和国\n</a>这样的字符串中a标签的\n我怎么用正则替换掉啊???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然\n是字符串,直接用str_replace('\n','',$str);替换不行吗? 或者$str='<a href="">中华人民共和国中华人民共和国\n</a>\n\n';echo preg_replace('/\\\\n/','',$str); 主要就是要处理 a 标签中的\n,别的地方的\n 不用去掉.<a href="">中华人民共和国中华人民共和国\n</a>\n\n去掉后的效果是<a href="">中华人民共和国中华人民共和国</a>\n\n需要用到正则,我没想好怎么写,哎.脑壳大了... <?php$str = '<a href="">\n中华人中华人民共和国\n</a>';$patten = '#<a href="([^\"]*)"*?>(.*)</a>#';preg_match($patten,$str,$arr);$str2 = str_replace('\n','',$arr[2]);$new = str_replace($arr[2],$str2,$str);echo $new; $str = '<a href="">\n中华人民共和国中华人民共和国\n</a>\n\n保留!<a href="">baidu\n你好</a>保留\n保留<a href="">谷歌\n走了</a>保留\n保留';$patten = '#<a.+?href="(.*?)".*?>(.+?)</a>#';$result=array();$tmp=array();preg_match_all($patten,$str,$arr);for($i=0;$i<count($arr[2]);$i++){$tmp[$i] = str_replace('\n','',$arr[2][$i]);//清除换行$result[$i] = str_replace($arr[2][$i],$tmp[$i],$str);$str = $result[$i];//替换的内容重新赋值}echo str_replace('\n',"\n",$result[count($arr[2])-1]);源码:<a href="">中华人民共和国中华人民共和国</a> 保留!<a href="">baidu你好</a>保留保留<a href="">谷歌走了</a>保留保留 for修改成foreach更简洁foreach($arr[2] as $a){$tmp = str_replace('\n','',$a);$result = str_replace($a,$tmp,$str);$str = $result;}echo str_replace('\n',"\n",$result); 感谢,借用了.用零宽断言可以解决,也可以类似$rawText = preg_replace("/(<a.*?>.*?<\/a>)/sie", "str_replace('\\n',\"\",stripslashes(\"\$1\"))", $rawText);解决.3KS XH1Q8335军绿 php中的大括号的用法 代码这样写不行 求高人指点 第一次自写函数 mysql 个人版与企业版有什么区别? 弱问:使用ftp_connect()命令时的身份问题 ADODB数据类,能否连接SQlite数据库 如何定期执行php文件呢? php+com(php+excel or php+word) 請個位指教(五百裡加急) 手机网站支付宝接口 用手无法进入收银台 是怎么回事啊 那位兄弟能给一个完整的商品无限分类的代码。 PHP循环输出到表格问题。
$str='<a href="">中华人民共和国中华人民共和国\n</a>\n\n';
echo preg_replace('/\\\\n/','',$str);
<a href="">中华人民共和国中华人民共和国\n</a>\n\n
去掉后的效果是
<a href="">中华人民共和国中华人民共和国</a>\n\n需要用到正则,我没想好怎么写,哎.脑壳大了...
$str = '<a href="">\n中华人中华人民共和国\n</a>';
$patten = '#<a href="([^\"]*)"*?>(.*)</a>#';
preg_match($patten,$str,$arr);
$str2 = str_replace('\n','',$arr[2]);
$new = str_replace($arr[2],$str2,$str);
echo $new;
$patten = '#<a.+?href="(.*?)".*?>(.+?)</a>#';$result=array();
$tmp=array();
preg_match_all($patten,$str,$arr);for($i=0;$i<count($arr[2]);$i++){
$tmp[$i] = str_replace('\n','',$arr[2][$i]);//清除换行
$result[$i] = str_replace($arr[2][$i],$tmp[$i],$str);
$str = $result[$i];//替换的内容重新赋值
}echo str_replace('\n',"\n",$result[count($arr[2])-1]);源码:<a href="">中华人民共和国中华人民共和国</a>
保留!<a href="">baidu你好</a>保留
保留<a href="">谷歌走了</a>保留
保留
foreach($arr[2] as $a){
$tmp = str_replace('\n','',$a);
$result = str_replace($a,$tmp,$str);
$str = $result;
}
echo str_replace('\n',"\n",$result);
也可以类似
$rawText = preg_replace("/(<a.*?>.*?<\/a>)/sie", "str_replace('\\n',\"\",stripslashes(\"\$1\"))", $rawText);
解决.3KS