正则表达式从域名的电子邮件地址
任何人都可以帮助我一个正则表达式,将返回@符号后的电子邮件地址的结束部分?我是新来的正则表达式,但想学习如何使用它,而不是写低效率的.net字符串函数!正则表达式从域名的电子邮件地址
E.g.对于“[email protected]”的输入,我需要输出“example.com”。
干杯! 添
正则表达式是相当重的机器用于这一目的。只需将包含电子邮件地址的字符串拆分为@
角色,然后拿下第二个角色。 (电子邮件地址是保证仅包含一个@
字符。)
@(。*)$
这将匹配与@,然后捕捉一切,直到输入的结尾($)
谢谢!我得到了“@ example.com”。我可以在没有@的情况下获得价值吗? – TimS 2009-09-28 16:20:06
你可能没有找到合适的小组。括号'(',')'表示组匹配,因此请确保从索引为1的组中获取结果,而不是0(因为索引#0总是为整个表达式匹配保留)。 – 2009-09-28 17:06:49
这是正确的答案,因为OP特意要求一个正则表达式......顺便说一句,当我到达这里时我正在寻找:) – 2014-11-11 17:29:45
你输入一个简单的正则表达式是:
^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$
但是,当您申请广泛和异构的域时,它可能没用。
一个例子是:
^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)$
但是,因为你需要,你可以优化后缀域名。
要不是你的后缀需要,你只需要:
@ + $
实际上[正则表达式有点长](http://cpansearch.perl。 org/src/RJBS/Email-Valid-0.182/lib/Email/Valid.pm) – xxxxxxx 2009-09-28 15:59:27
我推荐这个解决方案,因为它的限制较少。 – 2009-09-28 16:00:46
只要不忘记将域名捕获到一个组中,就会问:'[A-Z0-9 ._%+ - ] + @([A-Z0-9 .-] + \。[AZ] { 2,4})$' – 2009-09-28 16:03:06
这是一个通用的电子邮件匹配:
[a-zA-Z][\w\.-]*[a-zA-Z0-9]@([a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])
。注意,仅捕获域组;如果您使用以下,您可以捕获部分出发的@
也:
([a-zA-Z][\w\.-]*[a-zA-Z0-9])@([a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])
我不知道这是否符合RFC 2822,但我对此表示怀疑。功能
[email protected];
// now you want to fetch gmail from input user PHP's inbuilt function
preg_match('/@(.*)/', $input, $output);
echo $output[1]; // it'll print "gmail.com"
- 文档:的preg_match()
该链接与此处发布的问题完全无关。 **不要简单地链接到你的网站这样**,否则你会发现你的帖子被删除为垃圾邮件。我正在删除您的链接。 – 2012-12-26 11:11:46
我知道这与问题无关,但链接中包含非常棘手的示例,所以认为这对其他人很有用......好的,下次我会照顾它。谢谢:-) – 2012-12-26 12:26:46
试试这个正则表达式:
(?<=([\w-\.]@))((?:[\w]+\.)+)([a-zA-Z]{2,4})
(? 2013-03-20 16:41:33
哇,这里所有的答案都不太对劲。
的电子邮件地址可以有很多“@”只要你想,最后一个不一定域:(
例如之前的一个,这是一个有效的电子邮件地址:
[email protected](i'm a comment (with an @))
虽然你必须很有意思才能使你的电子邮件地址。
所以首先解析出最后的所有评论。
然后
int atIndex = emailAddress.LastIndexOf("@");
String domainPart = emailAddress.Substring(atIndex + 1);
(@)(\w+\-|\w+)+(\.)
我不是专家,但上面的表达式是你需要从电子邮件抢域,至少据我可以告诉。
问题就像您指出的那样,您不仅抓取域而且抓取“@”和“。”。要在正则表达式访问的域名使用“$ 2”,并保留“@”和,你可以使用这样的表达“”:
$1newdomain$3
上面的网站是个好地方试用正则表达式来看看它是如何工作的。