regex - Outlook:如何过滤在正文中明确提到我名字的电子邮件

标签 regex vba email outlook

我正在尝试过滤在电子邮件正文中直接提及我的名字的电子邮件。

例如下面的邮件

John, please finish the report.

应该被过滤。

但是,问题是我在很多与我无关的电子邮件链上被抄送,当有人点击全部回复时,我的名字总是与 Outlook 规则匹配,因为引用的回复消息包含收件人:和CC:显示我名字的字段。

例如下面的邮件

Everyone, please finish the report.


From: Test, Jane Sent: Friday, August 28, 2015 12:51 PM To: Test, Joe Cc: Test, Bill; Doe, John Subject: Report

Original email text here.

与我无关,但仍会被与我相关的电子邮件过滤,因为我在 CC: 字段中匹配。

到目前为止,我设置了一个异常(exception)规则,如果“John”出现在正文中,消息将被过滤,除非“Doe, John”出现在正文中。然而,这样做的问题是它会过滤掉最初可能与我不相关,但在回复链中与我相关的电子邮件。

例如下面的邮件

From: Test, Jane Sent: Friday, August 28, 2015 12:51 PM To: Test, Joe Cc: Test, Bill; Doe, John Subject: Report

John, please mark this report as finished.


From: Test, Jane Sent: Friday, August 28, 2015 12:51 PM To: Test, Joe Cc: Test, Bill; Doe, John Subject: Report

Everyone, please finish the report.


From: Test, Jane Sent: Friday, August 28, 2015 12:51 PM To: Test, Joe Cc: Test, Bill; Doe, John Subject: Report

Original email text here.

最初与我无关,但现在与我相关。但是,它没有被过滤,因为我的异常与更下方的“Doe, John”相匹配。由于我的电子邮件地址很少出现在“收件人:”字段中这一事实加剧了这个问题。

使用 Outlook 规则是否有任何解决方法?如果没有,是否有使用 VBA 执行此操作的简便方法?

谢谢!

最佳答案

这个简单的正则表达式应该能帮到你

^From:.*\n.*(John).*

解释

^From:: 行首 From:,

.*:后跟任何文本,

\n:后跟一个换行符(这里是电子邮件标题的结尾),

.*(John).*:正文中包含 John 的任何文本。

DEMO

关于regex - Outlook:如何过滤在正文中明确提到我名字的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277731/

相关文章:

vba - 使用 VBA 查找 Office 2010 Word 文档的大纲级别

html - 图像在 Outlook 2007/2010 中被截断

c# - 在长字符串中查找所有以 [ 开头并以 ] 结尾的字符串部分

Java 正则表达式拆分具有未知数量空格的数字

excel - 如何复制多次重复单元格?

vba - Excel VBA : Copying multiple sheets into new workbook

javascript 正则表达式替换引号中的内容?

regex - ANT 删除空格正则表达式

email - 后缀,将电子邮件中继到具有 X 端口的下一个服务器

java imap 从某个日期开始获取消息