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 に答える