没有分隔符的电子邮件地址的正则表达式

时间:2018-05-01 06:01:30

标签: regex

我正在尝试提取文本列表中没有分隔符的电子邮件地址,这些分隔符可用于检测地址的开始和结束。我有一个这样的字符串:

EMAIL1 @ hotmail.comwelcome @ mydomain.atinfo @另一个-domain.detesting @ domain.or.atmy.name_test @ domainname.de

我正处于以下状态的正则表达式(不工作):

[a-zA-Z0-9.-]+@[a-zA-Z0-9-.]+.(com|at|de|or.at)

如果有人有解决方案,会非常有趣吗?也许是一种更好的方法来确定域名结尾,而不是拥有所有可能性的硬编码列表。

1 个答案:

答案 0 :(得分:2)

您将需要该硬编码顶级域名列表,否则无法确定一个地址的结束位置以及下一个地址的开始位置。

你的正则表达式还不错,但是你需要转义.(否则它将匹配任何字符,如果没有包含在character class中)并允许你的字符类中的下划线:

[a-zA-Z0-9._-]+@[a-zA-Z0-9_.-]+\.(com|at|de|or\.at)

适用于您的示例。