繁体   English   中英

PHP上的正则表达式从电子邮件字符串中删除URL

[英]Regular Expressions on PHP remove url from an email string

我正在上传从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

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

我如何使用正则表达式使这项工作呢?

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

[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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM