从电子邮件地址域的正则表达式(Regular Expression for domain from

2019-07-19 21:47发布

谁能帮我用正则表达式将返回的电子邮件地址的端部,@符号后? 我是新来的正则表达式,但想学习如何使用它,而不是写低效净字符串函数!

例如用于“test@example.com”输入我需要“example.com”的输出。

干杯! 蒂姆

Answer 1:

正则表达式是相当重的机器用于这一目的。 刚拆分包含在电子邮件地址字符串@字符,然后在第二个一半。 (电子邮件地址是保证只包含一个@字符)。



Answer 2:

@(。*)$

这将匹配与@,然后捕捉一切,直到输入的结尾($)



Answer 3:

这是一个通用的电子邮件匹配:

[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,但我对此表示怀疑。



Answer 4:

哇,这里所有的答案都不太对劲。

一个电子邮件地址,可以有很多的“@”只要你想,最后一个不一定域之前的一个:(

例如,这是一个有效的电子邮件地址:

user@example.com(i'm a comment (with an @))

你必须要非常想要让您的电子邮件地址,但。

因此,首先,解析出末任何评论。

然后

int atIndex = emailAddress.LastIndexOf("@");
String domainPart = emailAddress.Substring(atIndex + 1);


Answer 5:

你输入一个简单的正则表达式是:

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

但是,当你申请了广泛和异构域也可以是无用的。

一个例子是:

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

但是,你可以根据需要优化该后缀域名。

但是,对于你的后缀需要,你只需要:

@ + $

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



Answer 6:

$input=hardiksondagar@gmail.com;
// 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()


Answer 7:

试试这个正则表达式:

(?<=([\w-\.]@))((?:[\w]+\.)+)([a-zA-Z]{2,4})


Answer 8:

(@)(\w+\-|\w+)+(\.)

我不是专家,但上面的表达式是你需要从电子邮件抢域,至少据我可以告诉。

问题是为指出,你抢不只是域名,但“@”和“”。 要在正则表达式访问的域名使用“$ 2”,并保留“@”和,你可以使用这样的表达“”:

$1newdomain$3

http://www.regexr.com/

上面的网站是尝试正则表达式来看看它是如何,如果工作的好地方。



文章来源: Regular Expression for domain from email address