php - 使用正则表达式解析电子邮件字符串

标签 php regex

我正在尝试对电子邮件中的多行片段执行复杂的(对我来说)正则表达式。我已经很努力了,但没有运气。我试图摆脱从“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/

相关文章:

php - 使用 PHPMailer 时 Send() 函数没有响应

php - 将 WooCommerce 产品搜索扩展到自定义分类法和自定义字段

javascript - 为页面上的所有数字设置专门的字体

javascript - JS 正则表达式 : How to capture repeating pattern into different array elements?

php - 为什么我必须将 libmysql.dll 复制到 apache/bin 目录才能正确加载 PHP 扩展?

javascript - AJAX 不发送变量写入 txt

php - 查询表,但获取首先列出的特定 id

java - 正则表达式在多行模式下不匹配空字符串 (Java)

java - 正则表达式: quotes within quotes

javascript - jQuery 自动完成 : filter by first letter