Regex的用途是什么?

时间:2011-12-01 20:37:16

标签: php regex

我会抓住“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];

但它没有用..

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);

http://codepad.viper-7.com/C6Mxqd