2

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

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

$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”。“单词”是下一组带有空格的字符。我包括了“替代”部分,因为某些电子邮件将具有文本版本和 html 版本。

我想我需要使用 strpos()、substr() 和 explode() 的组合,但我不确定如何使用。有什么建议么?

4

2 回答 2

7

正则表达式到底有什么好处:

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

http://www.regular-expressions.info

于 2012-07-10T15:03:38.440 回答
3

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

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

在这里试试:http: //codepad.viper-7.com/W4UW4P

于 2012-07-10T15:02:02.810 回答