繁体   English   中英

使用正则表达式从字符串中提取电子邮件地址

[英]Extract email address(s) from string using regular expression

我有一个要求,使我有一些文字如下

Hello 
How r u
Email: mail3456@gg.com
Another email is aaa@zz.com
And not a valid email as invalid@.com

这是一个字符串,我要做的是,我需要确定字符串中是否存在任何电子邮件地址。 如果是这样,我需要提取它。

请注意,字符串中可以有多个电子邮件地址。

是否可以使用常规exprerssion来这样做。

谢谢

我认为这篇文章是您所需要的:

http://www.regular-expressions.info/email.html

范围从:

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$

至:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

是否真的有多行文字? 从此示例看来,每行最多包含一个电子邮件地址。 我先将文本分成字符串数组 ,然后使用选择的正则表达式评估每个单独的字符串。

仅供参考,出于性能方面的考虑,您可能想在进入数组循环之前实例化正则表达式。 最近,我多次重新实例化一个已编译的正则表达式,令我惊讶,以至于意识到它对性能造成的影响。 我进入了单例课程,这样就只能有一个实例。

用空格字符' ''\\n' ...等分割您的字符串,然后对包含'@'字符的每个“单词”适用: 使用正则表达式验证电子邮件地址 即使对我来说,它与上述问题完全相同。

暂无
暂无

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

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