【问题标题】:PHP split email with rulesPHP 使用规则拆分电子邮件
【发布时间】:2015-08-14 14:15:40
【问题描述】:

我必须使用一组规则拆分每天收到的电子邮件。 这是电子邮件的示例:

A N K U N F T   11.08.15
*** NEUBUCHUNG ***
 11.08.15  xxx  xxx  X3 2830  14:25   17:50
 18.08.15  xxx  xxx  X3 2831  18:40
 F882129  dsdsaidsaia
 F882129  xxxyxyagydaysd

**«CUT HERE»**


A N K U N F T   18.08.15
*** NEUBUCHUNG ***
 11.08.15  xxx  xxx  X3 2830  14:25   17:50
 18.08.15  xxx  xxx  X3 2831  18:40
 F881554  ZXCXZCXCXZCCXZ
 F881554  xcvcxvcxvcvxc
 F881554  xvcxvcxcvxxvccvxxcv

**«CUT HERE»**


11.08.15  xxx  xxx  X3 2830  14:25   17:50
 18.08.15  xxx  xxx  X3 2831  18:40
 F881605  xczxcdfsfdsdfs
 F881605  zxccxzxzdffdsfds

**«CUT HERE»**

因此,只要出现最后一个 F999999(其中 9 可以是任何数字),基本上就必须将其剪切。我该怎么做?

【问题讨论】:

  • 读取一行,如果它以[space]F[digit] 开头,则跳过它,继续跳过,直到你碰到一个空行 - 繁荣,完成。
  • 刚刚被\n\n分割
  • 我忘了说我找到了正则表达式来找到每个:[F]{1}\d{6},但问题是如果 F999999 重复我应该只在最后一个,只有在文本(例如:zxccxzxzdffdsfds)完成后才剪切......
  • @MiguelSousa 如果您认为通过邮寄方式发送数据是个问题,为什么不向我们展示您是如何做到的?当我们看不到你是怎么做的时候,我们到底应该怎么解决这个问题?
  • 对不起,我不认为表格有问题...当我发布时,换行符似乎消失了...

标签: php regex split rules


【解决方案1】:

你可以试试这个,虽然在 \n\n 上拆分会像

(?:\sF\d+.*?\n\n)\K(\n)

在捕获组上拆分。

Regex101

【讨论】:

  • 感谢您的快速解答! \n\n 可能不起作用,因为有时 F999999 之间用空行分隔。
  • 谢谢,我想这就是我要找的!
  • 嗨,我刚刚注意到最后一个“F999999”被删除了,我想把它包括在内。我试图在正则表达式中添加一个\n,但没有用......
猜你喜欢
  • 2015-05-09
  • 2011-10-14
  • 2016-11-02
  • 2023-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多