Php 查找正则表达式以参与电子邮件

Php 查找正则表达式以参与电子邮件,php,regex,Php,Regex,我需要从以下电子邮件中提取一部分: Bestellnummer xxx: 1 von xxx, 1er Pack ------------- Anfang der Nachricht ------------- foo bar baz foo bar baz // <<<<< I need this text here ------------- Ende der Nachricht ------------- ----

我需要从以下电子邮件中提取一部分:

Bestellnummer xxx:
  1 von xxx, 1er Pack

  ------------- Anfang der Nachricht -------------

  foo bar baz foo bar baz         // <<<<< I need this text here

  ------------- Ende der Nachricht -------------


  ------------- Anfang der Nachricht -------------

  foo bar baz foo bar baz

  ------------- Ende der Nachricht -------------
我可以用这个正则表达式提取第一部分:

$re = "/------------- .*? -------------.?(.*?).?------------- .*? -------------/s"; 
但是,由于我对学习正则表达式还比较陌生,我很确定一定有更好的正则表达式来提取这部分文本(foobarbaz foobarbaz)

------------- Anfang der Nachricht -------------
------------- Ende der Nachricht -------------
因为这可以用不同的语言,所以我使用

 .?
匹配那些连字符之间的所有内容

无论出现多少次,我都需要这篇文章的第一次出现。这个正则表达式有更多的固溶体吗

这里有一个


我的结果是:
$regexp='/Nachricht\s-+\s++(.*)\s+-+\sEnde/s'

因此,它节省了一些匹配步骤,并对消息进行了一些微调

更坚实的regexp。。它只是工作。为了安全起见,编写一个测试

  • \s
    -匹配空格
  • -+
    -匹配一个或多个
    -
    字符
  • \s+
    -匹配一个或多个空格;在消息之前/之后修剪消息
  • (.*)
    -用于消息

这看起来比我的好,明天早上我会试试,让你知道它是如何处理所有消息的。非常感谢。
 .?