我会抓住“Nadal@gmail.com”和“此电子邮件(和附件)之间的任何文字都是机密的,专有的”,但不知道什么是最好和最可靠的方法这个。我认为正则表达式,但也许有人知道更好。空行数可能会增加或减少,但这两行字符串之间总是会有文本。在这种情况下,文本是“testttinggg”
---------- Forwarded message ---------- From: person name Date: 2011/12/1 Subject: RE: this is a test subject To: Nadal@gmail.com
testingggggg
This e-mail (and attachment(s)) is confidential, proprietary,
我试着写
preg_match('/nadal@gmail\.com(.*?)This e-mail \(and attachment\(s\)\) is confidential,/', $wholeBody, $matches); echo $matches[1];
但它没有用..
答案 0 :(得分:0)
你的正则表达方式是正确的。您必须记住,默认情况下,点.
不包含换行符,因此您必须添加DOTALL
修饰符。
你可以试试这个。在capturegroup 1中,您将拥有内容(没有空白空格和换行符)
(?<=Nadal@gmail.com)\s*(.*?)\s*(?=This e-mail \(and attachment\(s\)\) is confidential, proprietary,)
您可以在此处看到它:http://regexr.com?2vc19
<强>更新强>
preg_match('/(?<=Nadal@gmail.com)\s*(.*?)\s*(?=This e-mail \(and attachment\(s\)\) is confidential, proprietary,)/s', $message, $matches);