解析电子邮件中的信息

奇怪的东西

我的目标是从电子邮件中收集信息并删除除一些关键信息(在本例中为姓名)之外的所有内容。

以下是收到的示例电子邮件。我已经能够从 Outlook 中提取电子邮件并将所有正文文本加载到数据网格中,但我不确定如何解析信息并检索名字和姓氏信息。

文字版

From: Company
Sent: Sunday, May 7, 2017 Eastern Time (US & Canada)
To: LastName, FirstName (CompanyName)
Subject: Thank you for your recent purchase.

Dear FirstName LastName,
Thank you for

HTML 版本

<font face="Tahoma" size="2"><b>From:</b> Company<br>
<b>Sent:</b> Sunday, May 7, 2017(UTC-05:00) Eastern Time (US &amp; Canada)<br>
<b>To:</b> LastName, FirstName (CompanyName)<br>
<b>Subject:</b> Thank you for your recent purchase<br>
<font face="Tahoma" size="2"><b>From:</b> Company<br>
<b>Sent:</b> Sunday, May 7, 2017(UTC-05:00) Eastern Time (US &amp; Canada)<br>
<b>To:</b> LastName, FirstName (CompanyName)<br>
<b>Subject:</b> Thank you for your recent purchase<br>
</font><br>
<div></div>
<div>
<div id="left-align-on-reply" dir="ltr">
<div id="main">
<div id="logo-row-box" style="width:95%; text-align:right; padding-top:6%; padding-bottom:6%">
<img id="imagesent" src="image.png" style="display:inline-block; height:28px; width:24px; right:0px">
</div>
<table id="message-body-wrapper" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="message-body-left-margin" width="0"></td>
<td id="message-body">
<table id="paragraphs" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="paragraph" style="padding:0 5% 18px; font:300 14px/18px 'Lucida Grande',Lucida Sans,Lucida Sans Unicode,sans-serif,Arial,Helvetica,Verdana,sans-serif; color:#333">
Dear FirstName LastName,</td>
</tr>
维达

一些丑陋的正则表达式来拯救

var regex = new Regex("To:</b> ([A-z]+), ([A-z]+)");
var m = regex.Match(GetHtml());
var firstName = m.Groups[2].Value;
var secondName = m.Groups[1].Value;

请注意,这非常脆弱,仅适用于定义的英文字母。

编辑:按要求分解正则表达式

  • "To:</b> " 是我们正在寻找的字符串必须以的模式开始。

  • "([A-z]+),"然后在逗号前查找 A 和 z 之间的一个或多个字符(大写和小写)。请注意,这不会处理双重名称、带连字符的名称或超出此范围的任何字符。它周围的 () 将结果捕获在一个组中。

  • " ([A-z]+)" 逗号后的名字的工作方式相同

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章