0

我正在上传从 Excel 导出的制表符分隔文本文件,基本上我通过使用 preg_match_all 获取文档上的所有电子邮件字段

preg_match_all("/([\s]*)[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i",$string,$emails);

在某些情况下,电子邮件会附加一个 url,如下所示:prefix.user@domain.comwww.domain.com

我只需要删除电子邮件,而不需要电子邮件地址之后的 url

我怎样才能使用正则表达式来完成这项工作?

4

1 回答 1

1

像这样列出最后一个正则表达式组中所有可能的域名,默认情况下包括顶级域。

[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)

您可以在此处阅读有关电子邮件验证的更多信息或 此处阅读相关问题。

更新

符合RFC 2822标准的表达式

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)
于 2012-12-27T10:34:26.023 回答