使用正则表达式匹配电子邮件地址

时间:2011-05-02 19:10:12

标签: regex email pattern-matching email-address

使用正则表达式过滤电子邮件地址:我是正则表达式的新手,希望有人可以提供帮助。

我正在尝试使用以下格式匹配电子邮件地址字符串:

FirstName.LastName@gmail.com

我想确定在'@'字符前面有一段时间,并且'@'字符后的字符与gmail.com匹配

谢谢, 布拉德

6 个答案:

答案 0 :(得分:3)

你想要点之前和之后的一些符号,所以我建议.+\..+@gmail\.com

.+表示任何符号(。)可以出现1次或多次(+)
\.表示点符号;用反斜杠屏蔽以抑制.的特殊含义 @gmailcom应完全匹配。

另见Regular Expression Basic Syntax Reference

编辑:帐户名称的gmail规则只允许拉丁字母,数字和点,所以更好的正则表达式是
[a-zA-Z0-9]+\.[a-zA-Z0-9]+@gmail\.com

答案 1 :(得分:1)

检查有效的电子邮件

^(?= [A-ZA-Z0-9] [A-ZA-Z0-9 @ - ] {5253})(?!?[] * {2})^ [ A-ZA-Z0-9 .-] + [A-ZA-Z0-9 _-] @(?= ?[。] {1})(?!? [ - ] {2})[A-ZA-Z0-9] [A-ZA-Z0-9 .-] +([AZ] {2,} |。。[0-9] {1,})$

强制规则:

  • 必须以字母数字字符
  • 开头
  • 只能包含字母数字和@ ._-字符,且最多不得超过253字符
  • 不能连续2次。
  • @ li之前的char只能是字母数字和._-
  • 大部分都在中间
  • 需要至少有1个。在域名部分
  • 不能双重 - 在域名部分
  • 在域部分中只能包含字母数字和.-字符
  • 需要以2个或更多字母的有效扩展名完成
  • 添加了对ip(test@1.1.1.1)
  • 的支持

答案 2 :(得分:0)

假设Unix样式.是任何字符:.*\..*@gmail\.com

修改:转义了域中的.

答案 3 :(得分:0)

您甚至不需要正则表达式,因为您的要求非常具体。不确定您使用的是哪种语言,但大多数人会支持在@上进行拆分并检查.。在python:

name, _, domain = email.partition('@')
if '.' in name and domain == 'gmail.com':
    # valid

答案 4 :(得分:0)

你没有告诉我们你需要什么样的正则表达式,但是这个例子适合大多数:

.*\..*@gmail.com

答案 5 :(得分:0)

我使用以下正则表达式来验证电子邮件地址。我还为此添加了一个 C# 语言的小代码片段。

正则表达式 - "^[a-zA-Z0-9]{3,20}@gmail.com$"

代码:-

static void Main(string[] args)
        {
            Console.WriteLine("Enter Your Text ");
            string input = Console.ReadLine();
            Console.WriteLine("The Text that you have entered is :" + input);
            Console.ReadLine();

            string pattern = "^[a-zA-Z0-9]{3,20}@gmail.com$";
            Regex regex = new Regex(pattern);
            bool results = regex.IsMatch(input);
            Console.WriteLine(results.ToString());
            Console.ReadLine();
        }

诸如 ∂øøµ$∂å¥!@gmail.com 之类的电子邮件也在此处检查并显示为假。 ;-)