正则表达式替换排除特定情况

Posted jenqz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式替换排除特定情况相关的知识,希望对你有一定的参考价值。

1.只替换第一次出现的字符串“红豆”;

$s="i‘am carl 小红豆杉苗 <a href=‘abc‘>dfsaf<a href=\"fdsafdsaf\">大红豆杉</a></a> carl fds<b>af红豆dsa</b>few";
$r = preg_replace(‘/红豆/i‘, ‘绿豆‘,$s,1);
var_dump($r);

结果

string(104) 
"i‘am carl 小绿豆杉苗 <a href="abc">dfsaf<a href="fdsafdsaf">大红豆杉</a></a> carl fds<b>af红豆dsa</b>few"

  

2.替换所有外部不带a标签的字符串”红豆“;

$s=‘i\‘am carl 小红豆杉苗 <a href="abc">dfsaf<a href="fdsafdsaf">大红豆杉</a></a> carl fds<b>af红豆dsa</b>few‘;

$r = preg_replace(‘/(?!<a .*?>.*?)红豆(?![^<]*<\/a>)/i‘, ‘绿豆‘,$s);

//$r = preg_replace(‘/红豆/i‘, ‘绿豆‘,$s,1);
var_dump($r);

结果

string(104) 
"i‘am carl 小绿豆杉苗 <a href="abc">dfsaf<a href="fdsafdsaf">大红豆杉</a></a> carl fds<b>af绿豆dsa</b>few"

  

PS: 如有漏洞,望不吝指教。  

  

以上是关于正则表达式替换排除特定情况的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式排除特定字符串

正则表达式,替换 指定范围内 的 特定字符串

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

正则表达式

正则表达式:匹配模式但排除一种情况[重复]

使用正则表达式替换字符串中的特定字母