如何从此电子邮件中提取嵌入的附件名称?

Óla*_*age 1 php regex email

我的正则表达能力......糟糕.我有这个电子邮件正文.

Hello World

[cid:image002.png@01C9DEDD.67C237D0]

Hello World

[cid:image002.png@01C9DEDD.67C237D0] [cid:image002.png@01C9DEDD.67C237D0]

Hello World
Run Code Online (Sandbox Code Playgroud)

我需要的是一个文件名数组.

preg_match_all("/\[cid:(.*)\@/", $string, $matches);

echo "<pre>";
    print_r($matches);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

我得到第一个文件名很好.但不是第二和第三.

[0] => image002.png
[1] => image002.png@01C9DEDD.67C237D0] [cid:image002.png
Run Code Online (Sandbox Code Playgroud)

如何更改此正则表达式,以便它适用于电子邮件正文中的任何嵌入文件?

bra*_*rry 5

我想你可以把表达式更改为:

"/\[cid:(.*?)\@/"
Run Code Online (Sandbox Code Playgroud)

使比赛不贪婪.

以下是一些可用于测试表达式的工具: