我正在尝试对电子邮件中的多行片段执行复杂的(对我来说)正则表达式。我已经很努力了,但没有运气。我试图摆脱从“On”到“write:”的任何内容
如果您还可以检查它是否包含单词“AcmeCompany”,那就太好了,这样它就不会检查所有“On”“write:”
到目前为止,我有这个: /On(.*)AcmeCompany(.*)/im
但它不起作用...
say hello, world!
On Tue, Jun 7, 2011 at 6:18 AM, AcmeCompany <
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2c1e184d15194a18154a1b4f49191b1f4a485f1e48074f6c6d4f41496f43415c4d4255024f4341" rel="noreferrer noopener nofollow">[email protected]</a>> wrote:
感谢您的回复,但似乎还有另一个问题。
编辑:我发现这有效:/On[\s\S]+?AcmeCompany[\s\S]+?wrote:/m
,但当电子邮件内容包含“On”字样时,似乎会失败。
say hello, world!
On a plane!
On Tue, Jun 7, 2011 at 6:18 AM, AcmeCompany <
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="182a2c79212d7e2c217e2f7b7d2d2f2b7e7c6b2a7c337b58597b757d5b777568797661367b7775" rel="noreferrer noopener nofollow">[email protected]</a>> wrote:
EDIT2:每个邮件客户端都是不同的...gmail 倾向于用 2 行来完成,iPhone 的邮件应用程序用 1 行来完成,所以它并不总是遵循严格的格式。
有一点是肯定的:开头总是使用“On”并以“write:”结尾。它还包含哈希值和 AcmeCompany,我也可以用它来验证。
最佳答案
对于新的要求,我添加了另一个回复。希望你不会介意。
你能尝试这样的事情吗?
/On\s(Mon|Tue|Wed|Thu|Fri|Sat)[\s\S]+?AcmeCompany[\s\S]+?wrote:/
罢工><罢工>罢工>
我再试一次..使用怎么样?
/On.+?AcmeCompany[\s\S]+?wrote:/
关于php - 使用正则表达式解析电子邮件字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267519/