从Gmail电子邮件正文中提取电话号码

时间:2013-09-16 10:02:11

标签: regex email gmail preg-match

是否有良好的解决方案可以从Gmail电子邮件正文中获取真实的电话号码? 我试图通过IMAP收到电子邮件,但html结果并不是真正可以解析的。

我的代码:

$message = imap_fetchbody($inbox,$emails,1);

正文结果是:

示例1:

 bla-bla-bla
 <strong>TEXT</strong>
 " : +22545091040"
 <br />
 bla-bla-bla

示例2:

bla-bla-bla
<strong>TEXT</strong>
" : 0980653935 France"
<br />
bla-bla-bla

所有电子邮件都具有以下结构:

 Bonjour,<br><br>Voici le numéro de téléphone de <strong>*NAME*</strong> : *INPUT1 DATA*<br>
 <br>Son adresse email est la suivante : *INPUT2 DATA*<br>

是否有正则表达式或某种不同方式从电子邮件正文中提取此电话号码?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试在电子邮件正文中使用preg_match

preg_match('~[0-9]+(?=[^"]+"<)~', $body, $number);

regex101 demo

此正则表达式依赖于包含电话号码的部分中有引号的事实(否则,您可能会在电子邮件正文中更早出现数字)。如果之前没有数字,您只需使用:

preg_match('~[0-9]+~', $body, $number);