如何使用正则表达式从字符串中获取电子邮件,名称和日期?

时间:2015-11-15 07:57:03

标签: php regex

我有这个字符串

> Begin forwarded message:
>
> From: "Gardner, Sharon" <some@email.com>
> Date: 10 November 2015 at 21:10:25 GMT 
> *Originla message text*

我需要从中捕获电子邮件,姓名和日期

试过这个:

  • 捕获电子邮件preg_match('/\<(.*)\>/', $this->inbound->TextBody(), $email);
  • 捕获名称preg_match('/From: "(.*)"/', $this->inbound->TextBody(), $name);
  • 和日期:preg_match('/Date: (.*)\n/', $this->inbound->TextBody(), $name)

这可以胜任,但我不确定这是否可靠?

1 个答案:

答案 0 :(得分:1)

如果您可以进行简单的字符串处理,那么最好完全忽略正则表达式 。电子邮件是notoriously hard,可以为。

创建正则表达式

到目前为止,如果您有一致的模式,看起来您可以找到From:Date:的行,并适当地解析其余部分。 PHP有decent set of functions来分割和操作字符串,所以先试试。