PHP 用于匹配和去除文本电子邮件中嵌入图像的正则表达式模式

PHP Regex Pattern To Match And Strip Out Embedded Images in Text Email

如何使用以下模式去除基于文本的电子邮件中的嵌入图像?

[cid:B54FD59F-8DE7-4ED1-A0C7-19E52F83A8D7]

您可以尝试使用此正则表达式从您的文本正文中提取 [cid:B54FD59F-8DE7-4ED1-A0C7-19E52F83A8D7] 类模式,

\[cid:.*\]

Demo

这些是 guid,此正则表达式将提供干净的匹配并替换为空字符串

$pattern = '/\[cid\:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\]/i';
$formattedString = preg_replace($pattern, "", $string);
\[cid:[^\]]*\]

通过 empty string 尝试 this.Replace。查看演示。

https://regex101.com/r/sJ9gM7/34

$re = ""\[cid:[^\]]*\]"";#regex101 bug
$re = "/\[cid:[^\]]*\]/"; 
$str = "askdaskjd\nsad\nas\nd\n[cid:B54FD59F-8DE7-4ED1-A0C7-19E52F83A8D7]\na\nds\nad\nsa\nd\n[cid:B54FD59F-8DE7-4ED1-A0C7-19E52F83A8D7]\n\nasdasd";
$subst = "";

$result = preg_replace($re, $subst, $str);

您可以尝试使用如下模式:

(\[cid:(?:[0-9A-Z-]{7,8}){5}\])

如果您想包含小写字符,请在 /.

之后使用 i(忽略大小写)
$reg = "/(\[cid:(?:[0-9A-Z-]{7,8}){5}\])/";
$sub = "";

$result = preg_replace($reg, $sub, $str);

示例:

https://regex101.com/r/vK8eX1/1