我正在尝试编写一个解析电子邮件的脚本,并在某些字符串后查找某些字符串。
例如,假设我有以下电子邮件正文。
$body = "Dear John Doe, your information is below
Check in date: 07/23/2012
Check out date: 07/26/2012
Alternate Check in date: 07/27/2012
Alternate Check out date: 07/29/2012";
我想在第一个“签入日期:”之后直接获取“单词”,这将是“07/23/2012”。 'word'是下一组字符,周围有空格。我包含了“备用”部分,因为有些电子邮件会有文本版本和html版本。
我想我需要使用strpos(),substr()和explode()的组合,但我不知道如何。有什么建议吗?
答案 0 :(得分:7)
正则表达式正好适用于:
preg_match('/(?<=Check in date: )\S+/i', $string, $match);
echo $match[0];
答案 1 :(得分:3)
这是正则表达式的一个很好的用例:
if (preg_match('#^Check in date: ([^\s]+)#m', $body, $match)) {
$result = $match[1];
}