php - 找到一个正则表达式来包含电子邮件的一部分

标签 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 -------------


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

  foo bar baz foo bar baz

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

出现 0 到无限次

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

我可以使用这个正则表达式提取第一部分:

$re = "/------------- .*? -------------.?(.*?).?------------- .*? -------------/s"; 

但是,由于我对学习正则表达式还很陌生,我很确定必须有一个更好的正则表达式来提取

之间的文本的这部分 (foo bar baz foo bar baz)
------------- Anfang der Nachricht -------------
------------- Ende der Nachricht -------------

由于这可以采用不同的语言,因此我使用

 .?

匹配这些连字符之间的所有内容。

无论出现多少次,我都需要该文本的第一次出现。这个正则表达式有更可靠的解决方案吗?

这是一个

demo at regex101.com

最佳答案

我最终得到:$regexp = '/Nachricht\s-+\s+(.*?)\s++-+\sEnde/s';

因此,它节省了一些匹配步骤并对消息进行了一些修剪。

更可靠的正则表达式..它确实有效。为了安全起见,编写一个测试。

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

<强> Demo at regex101.com

关于php - 找到一个正则表达式来包含电子邮件的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30835745/

相关文章:

javascript - 在 Javascript (JQuery Mobile) 创建的表中应用 css 样式

php - 声明和调用名称中带有句点的 PHP 对象函数

正则表达式将每个偶数字符转换为大写 - Notepad++

javascript - 如何在正则表达式中允许空格

python - 如何使用正则表达式删除某些 HTML 标记中的字符串并且字符串必须包含空格

Javascript 从字符串中提取数字

javascript - 单击功能中输入字段值不变

PHP面向对象结构

php - 嘻哈 PHP 下载?

java - 在 Google Refine 中解析部分字符串 - 错误消息