我正在尝试创建一个正则表达式,它将在电子邮件标题中的Cc字段后查找电子邮件地址。我没有对字符串进行编程控制,因此它并不特定于任何特定的编程语言。它只是某些软件集成的一部分,它希望在搜索条件中有一些正则表达式
电子邮件标题如下所示:
Received: by hermit.cdu-staff.local
id <01CCE6E3.19910AB8@hetmit.ere-tyumm.local>; Thu, 9 Feb 2012 13:57:14 +0930
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01CCE6E3.19910AB8"
Content-class: urn:content-classes:message
X-MimeOLE: Produced By Microsoft Exchange V6.5
Subject: Email header example
Date: Thu, 9 Feb 2012 13:57:10 +0930
Message-ID: <6434D994F5A495428AB3B69877565EF97040C469A@hermit.cdi-stann.local>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: Email header example
Thread-Index: Aczm4xa7dGVpHUWERSSOuR8HCNmrAw==
From: "Bishnu Paudel" <Bishnu.Paudel@company.com>
To: "Study" <study@company.com>
Cc: "Cameron Loudon" <Cameron.Loudon@company.com>
我已经创建了一个正则表达式,如果字符串是一行字符串(标题中的最后一行),该表达式效果很好。这是表达式
(^|,)\s*.*Cc:.*(bishnu.paudel|cameron.loudon)@company[.]com\s*($|,).
非常感谢任何帮助。
答案 0 :(得分:1)
答案 1 :(得分:0)
您尚未指定您正在使用的编程语言,但一般情况下,您可以编写如下内容:
(^|,)\s*(admin|clients)@ourcompany[.]com\s*($|,)
这将匹配admin@ourcompany.com
或clients@ourcompany.com
,前提是它前面是字符串开头或逗号(带有可选的空格),后跟逗号或字符串结尾(可选)空白)。
请注意,电子邮件地址实际上非常复杂 - 例如,如果我没记错,admin@ourcompany.com
和"admin"@ourcompany.com
在技术上是等价的 - 所以我要谨慎:这种特殊的解析方法可能不可取。 (基本上,我会问:如果你的正则表达式返回假阳性或假阴性,问题有多大?如果你需要对结果非常有信心,那么这种方法可能不是可行的方法。)< / p>
答案 2 :(得分:0)
我最终通过构建这个正则表达式来完成它。 Cc:.*<(student.admin|study|summer|midyear|changeyourworld)@ourcompany[.]com>
匹配标题,例如:
To: <paudel_bishnu@hotmail.com>
Cc: "studentadmin" <student.admin@ourcompany.com>, "Bishnu Paudel" <Bishnu.Paudel@ourcompany.com>
但它与目标电子邮件(student.admin)不在Cc字段的第一位的标题不匹配。例如:
To: <paudel_bishnu@hotmail.com>
Cc: "Bishnu Paudel" <Bishnu.Paudel@ourcompany.com>, "studentadmin" <student.admin@ourcompany.com>
干杯,