preg_matchでのマッチが正しくされない
メールヘッダを解析して処理させるプログラムを作成しています。
ヘッダから件名を取得するために以下のコードを記述しました。
$head = 'Return-Path: Delivered-To: hoge@hogehoge.com Received: from docomo.ne.jp (mail102.docomo.ne.jp [203.138.203.2]) by www.hogehoge.com (Postfix) with ESMTP id C73904003B for ; Fri, 25 Mar 2011 16:32:19 +0900 (JST) Date: Fri, 25 Mar 2011 16:32:24 +0900 (JST) From: huga@hogehoge.com To: hoge@hogehoge.com Subject: =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?=hogehogehugahuga =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?= Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.96.3 at MCN X-Virus-Status: Clean'
$ptrn = '/Subject:([\s\t]*=\?iso-2022-jp\?[BQ]\?([^\?]+)\?=)+.* Message\-ID/i';
preg_match($ptrn, $head, $regs);
var_dump(regs[0]);
$headに別関数で取得したメールのヘッダ情報、$ptrnに正規表現での一致条件を書き出しました。
PHPの正規表現チェッカーでは正常にマッチしたのですが、preg_matchで動作させるとマッチしてくれません。
何がまずいのでしょうか?
正しくマッチさせる方法をご回答お願いします。
お礼
解答有難うございます。 安心して試合に臨めます! 押忍!