php在字符串中的某个单词后直接获取单词

时间:2012-07-10 14:58:46

标签: php string

我正在尝试编写一个解析电子邮件的脚本,并在某些字符串后查找某些字符串。

例如,假设我有以下电子邮件正文。

$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()的组合,但我不知道如何。有什么建议吗?

2 个答案:

答案 0 :(得分:7)

正则表达式正好适用于:

preg_match('/(?<=Check in date: )\S+/i', $string, $match);
echo $match[0];

http://www.regular-expressions.info

答案 1 :(得分:3)

这是正则表达式的一个很好的用例:

if (preg_match('#^Check in date: ([^\s]+)#m', $body, $match)) {
    $result = $match[1];
}

在此处试试:http://codepad.viper-7.com/W4UW4P