首页 > 解决方案 > PHP preg_replace 正则表达式在 cid 时不替换:直到下一次匹配

问题描述

所以基本上我试图在它寻找的地方制作一个正则表达式,src=""当它喜欢时跳过它,src="cid:然后以 1 的间隔进入下一场比赛。

这是我现在的完整代码行:

$mailMessage = preg_replace( '@src="([^"]+)"@' , 'src="cid:' . $imageCombined . '" ' . 'id="' . $imageID . '"' , $mailMessage , 1);

@src="([^"]+)"@就是我所指的部分。

标签: phpregex

解决方案


您可以使用

'@src="(?!cid:)([^"]+)"@'
       ^^^^^^^^

请参阅正则表达式演示

细节

  • src="- 文字文本src="
  • (?!cid:)-如果当前位置的右侧有字符串,则匹配失败的负前瞻cid:
  • ([^"]+)- 第 1 组:除字符外的任何一个或多个"字符
  • "- 一个"字符。

推荐阅读