1

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

我正在尝试对具有以下格式的电子邮件地址字符串进行模式匹配:

名字.姓氏@gmail.com

我想确保在“@”字符之前的某个地方有一个句点,并且“@”字符之后的字符与 gmail.com 匹配

4

6 回答 6

4

您需要点前后的一些符号,所以我建议.+\..+@gmail\.com.

.+表示任何符号 (.) 可以出现 1 次或多次 (+)
\.表示点符号;用反斜杠筛选以抑制 和 的特殊含义,.
@gmail应该com完全匹配。

另请参见正则表达式基本语法参考

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

于 2011-05-02T19:29:03.707 回答
2

检查有效的电子邮件

^(?:(?!.*?[.]{2})[a-zA-Z0-9](?:[a-zA-Z0-9.+!%-]{1,64}|)|\"[a-zA-Z0-9.+!% -]{1,64}\")@[a-zA-Z0-9][a-zA-Z0-9.-]+(.[a-z]{2,}|.[0-9]{1,})$

强制规则:

  • 必须以字母数字字符开头
  • 只能有字母数字和@._-% char
  • 不能有 2 个连续的。除了带引号的字符串
  • @ 之前的字符只能是字母数字和 ._-%,引号字符串除外
  • 中间必须有@
  • 至少需要有 1 个。在域部分
  • 域部分不能有 double -
  • 域部分只能有字母数字和 .- 字符
  • 需要以 2 个或更多字母的有效扩展名结尾
  • 支持IP地址(test@1.1.1.1)
  • 支持引用的用户名
于 2018-06-18T16:41:05.140 回答
0

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

.*\..*@gmail.com
于 2011-05-02T19:13:49.890 回答
0

.假设任何字符都是Unix 风格:.*\..*@gmail\.com

.编辑:在域中转义

于 2011-05-02T19:13:13.073 回答
0

您甚至不需要正则表达式,因为您的要求非常具体。不确定您使用的是什么语言,但大多数会支持拆分@并检查.. 在蟒蛇中:

name, _, domain = email.partition('@')
if '.' in name and domain == 'gmail.com':
    # valid
于 2011-05-02T19:13:34.183 回答
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 之类的电子邮件也在此处检查并显示为假。;-)

于 2020-12-22T18:18:27.447 回答