您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

怎样用正则匹配不带链接的文字?

2024/4/14 17:32:26发布27次查看
regex.pattern = (>[^> 这是asp版本的 php用不行
做站内链接功能
需要循环匹配不带链接的文字
比如
我爱csdn 我爱csdn,csdn不爱我
然后中间有 csdn的 就替换成
csdn
可能循环替换多次,如果直接替换 就会乱码了
所以求个正则,如果发现是链接和链接内的文字 就不替换
要求是  已替换过的 不再替换 比如  先把 “csdn不爱我”  替换为链接 然后 再把 剩下的 “csdn” 替换成链接
把 “csdn不爱我” 替换了 ,那这句里的 “csdn” 也不会再被替换
回复讨论(解决方案) 有大神写过给个例子吗?
不清楚,同求
我爱csdn 我爱csdn,csdn不爱我
然后中间有 csdn的 就替换成
csdn
如果第二次编辑的时候, href中的csdn不要替换,
没人会吗?急呐
$s =<<).*?)(csdn)([^<]*(?:<(?!\/a)|$))/is';$r = '$1$2$3';do { $t = $s; $s = preg_replace($p, $r, $t);}while($s != $t);echo $s;

我爱csdn 我爱csdn,csdn不爱我
$s =<<).*?)(csdn)([^<]*(?:<(?!\/a)|$))/is';$r = '$1$2$3';do { $t = $s; $s = preg_replace($p, $r, $t);}while($s != $t);echo $s;

我爱csdn 我爱csdn,csdn不爱我
如果重复次数多了 还是会乱掉
比如 继续替换 我爱 爱我 加上链接
cs加链接
s加链接
我现在用的是笨方法
1、把字符串里的图给换成数组标记
2、把链接也换
3、替换
4、还原图的数组标记
5、还原链接的数组标记
这样就不会乱了 但感觉效率好低啊 版主这个能否再改进下呢?
字符串是
我是文章14的内容 111 abc 文章333 444 文章asdf; jk555
需要依次给
我是文章 文章
都加上链接http://csdn.net 有没办法呢
$abc = '欢迎'; $c='liw5ucms php版本即将发布,欢迎大家关注!en dfds dhh呵呵 站长导航 啊哈哈5ucms啊哈哈 邱嵩松tjgad'; echo '原文=
'.$c.''; echo '替换词=
'.$abc.''; // 第一步获取字符串里所有图片的正则表达式 preg_match_all(//i,$c,$arryimg); $imgtimes = count($arryimg); for($j=0;$j<$imgtimes;$j++){ //读取出符合的关键词名称 $img = $arryimg[0][$j]; $c = str_ireplace($img,'@img['.$j.']@',$c);//替换掉 变成链接 $qimg[$j] = $img;//存入数组 } // 第二步获取字符串里所有超链接的正则表达式 preg_match_all(/(.*?)/i,$c,$arrya); $atimes = count($arrya); for($j=0;$j<$atimes;$j++){ //读取出符合的关键词名称 $a = $arrya[0][$j]; $c = str_ireplace($a,'@a['.$j.']@',$c);//替换掉 变成链接 $qa[$j] = $a;//存入数组 } echo '去图+链接=
'.$c.''; // 第三步 按指定次数替换 $c = str_replace($abc,''.$abc.'',$c);//替换掉 指定次数 变成链接 echo '替换结果=
'.$c.''; // 第四步 恢复旧的图片 for($i=0;$i '.$c;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product