preg_replace如何替换除html标签以外的内容 我需要将一个字符串中的数字替换,但这字符串可能是 <img alt="" src="/js/kindeditor/attached/20110317193753_63040.jpg" border="0" /> 123456<p>.....,我只要把123456(可能是任意长度数字)清除就可以了,img里面的数字图片名称仍然保留,我该怎么写preg_replace 知道的请留下你的代码或思路 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你的字符串就这么长,那不是个问题替换>和<之间的内容就行问题是字串其他部分呢?还有其他标签么?还有其他img么? 字符串可以任意长度,也可能没有任何html标签,也可能有任意标签 关键是我怎么才能找出 >和< 之间的内容呢? 有其他标签就不能用这个啦,因为有歧义你要确定你上面这段短字串附近有“唯一”的东西在长字串中,例如长字串中只有这么一个img标签否则正则写不出来 或者换个思维,匹配需要的,用preg_match_all('/<[^>]+>/',$str,$match)比如: <?php$str=<<<HTML"<div id=contain> <div id=ccc> <p>woaini</p> <img src=/img/77.jpg></img> </div> <img src=csdn/woaini.png/> <span>格式化</span></div><p><img id=tupian></img>这是图片</p>"HTML;preg_match_all('/<[^>]+>/is',$str,$match);foreach($match as $v){ foreach($v as $k=>$v1) { echo $k."=>".str_replace('<','<',str_replace('>','>',$v1))."<br>"; }}//结果是全都是html标签,连接字符串就是所有的HTML,单个标签的在数组内!?> 我是这样解决的 echo preg_replace('/(?!<[^>]*)(\d)(?![^<]*>)/i', '', $str);谢谢两位 : ) preg_replace('/>([^<]+?)</is','><',$str);不行吗? 这个站做好之后不怎么把模板换掉 难住很多人的三目运算符..请高手解答.散分 怎样给变量定义一个颜色 有关SupeSite6.0调用数据库问题 济南地区网络创业寻技术高手加盟 一台服务器php连接数据库,数据库地址却用了对外的ip,造成偶尔获取数据库连接句柄需要2s 朋友问了个PHP的问题,有大大帮看看吗?谢谢了!急 高手进!!!!(没分了,不好意思) odbc_fetch_into的问题啊! PHP如何取查询结果中的最大值并赋予style 大侠们,帮帮!关于$arr=$rst->GetAssoc()在PHP中是什么意思? \u7b2c1\u8bdd 这样的字符怎么用PHP语句转成中文?
替换>和<之间的内容就行问题是字串其他部分呢?还有其他标签么?还有其他img么?
字符串可以任意长度,也可能没有任何html标签,也可能有任意标签 关键是我怎么才能找出 >和< 之间的内容呢?
否则正则写不出来
比如:
<?php
$str=<<<HTML
"<div id=contain>
<div id=ccc>
<p>woaini</p>
<img src=/img/77.jpg></img>
</div>
<img src=csdn/woaini.png/>
<span>格式化</span>
</div>
<p><img id=tupian></img>这是图片</p>
"
HTML;
preg_match_all('/<[^>]+>/is',$str,$match);
foreach($match as $v)
{
foreach($v as $k=>$v1)
{
echo $k."=>".str_replace('<','<',str_replace('>','>',$v1))."<br>";
}
}//结果是全都是html标签,连接字符串就是所有的HTML,单个标签的在数组内!
?>