Я хочу извлечь часть тела из следующей цепочки с помощью регулярных выражений в php.
Цепная почта сохраняется в формате txt. При извлечении теги html, если они присутствуют в теге body, не должны быть затронуты.
$content = <<<HEREDOC
From: Matrimony <matrimony@mangalsutrabandhan.in>
Sent: Fri, 12 Aug 2011 16:17:40
To: "matrimony@mangalsutrabandhan.com" <matrimony@mangalsutrabandhan.in>
Subject: Re: bride search
From: brides <sales@mangalsutrabandhan.com>
Sent: Fri, 12 Aug 2011 15:49:52
To: "Matrimony " <matrimony@mangalsutrabandhan.in>
Cc: "groom" <brides@mangalsutrabandhan.com>
Subject: Re: bride search
PFA
Regds.,
sales
From: shaadi <kundaali@mangalsutrabandhan.in>
Sent: Tue, 22 Feb 2011 16:40:24
To: <vivaah@mangalsutrabandhan.com>, <bandhan@mangalsutrabandhan.com>
Cc: "'lagna '" <lagna@mangalsutrabandhan.in>, <movies@mangalsutrabandhan.in>, <manishv@mangalsutrabandhan.com>, "'beta data'" <channel@mangalsutrabandhan.com>, "'test S'" <city@mangalsutrabandhan.com>
Subject: Re:data transfer would be made live for 145 test
This is to inform you that we are going to test today.
Activity Timing: 9:00 PM onwards
Thanks and Regards,
free matrimony
shaadi Operations
P Please do not print this e-mail unless it is absolutely necessary
From: shaadi [nikaah:kundaali@mangalsutrabandhan.in]
Sent: 21 February 2011 23:09
To: vivaah@mangalsutrabandhan.com; bandhan@mangalsutrabandhan.com
Cc: 'lagna '; movies@mangalsutrabandhan.in; manishv@mangalsutrabandhan.com;
Subject: data transfer would be made live for 145 test
Hi,
gtsdhsdbh
anbdsmbsa
sda the data test .
Would request you to send in your feedback.
Thanks and Regards,
beta data
assa xyz
P Please do not print this e-mail unless it is absolutely necessary
HEREDOC;
O / P
Array
(
[0] => Array
(
[0] => Re: bride search
[1] => Re: bride search
PFA
Regds.,
sales
[2] => Re:data transfer would be made live for 145 test
This is to inform you that we are going to test today.
Activity Timing: 9:00 PM onwards
Thanks and Regards,
free matrimony
shaadi Operations
P Please do not print this e-mail unless it is absolutely necessary
)
[1] => Array
(
[0] => Re: bride search
[1] => Re: bride search
PFA
Regds.,
sales
[2] => Re:data transfer would be made live for 145 test
This is to inform you that we are going to test today.
Activity Timing: 9:00 PM onwards
Thanks and Regards,
free matrimony
shaadi Operations
P Please do not print this e-mail unless it is absolutely necessary
)
)
Регулярное выражение, которое я использовал, чтобы получить выше o / p
preg_match_all('/(?<=Subject: )(.*?[\n][\s]*?)(?=From:)/is',$content,$rest);
но он не дает последнего, так как не имеет 'from' для получения промежуточных данных.
Надеюсь, это ясно.
Пожалуйста, дайте мне знать, если есть какой-либо другой метод, для этого.
preg_match_all('/(?m:^From:\x20(?<From>[^\n]*)\n^Sent:\x20(?<Sent>[^\n]*)\n^To:\x20(?<To>[^\n]*)\n(?:^Cc:\x20(?<Cc>[^\n]*)\n)?^Subject:\x20(?<Subject>[^\n]*)\n)(?<Body>.*?(?=(?:\nFrom:)|$))/s',$content,$matches);
echo "<pre>".print_r($matches,true);
Это обеспечивает почти правильное о / п. Должен ли я предоставить текстовый файл на http://www.mangalsutrabandhan.com