使用正则表达式过滤电子邮件地址:我是正则表达式的新手,希望有人能提供帮助。
我正在尝试对具有以下格式的电子邮件地址字符串进行模式匹配:
名字.姓氏@gmail.com
我想确保在“@”字符之前的某个地方有一个句点,并且“@”字符之后的字符与 gmail.com 匹配
使用正则表达式过滤电子邮件地址:我是正则表达式的新手,希望有人能提供帮助。
我正在尝试对具有以下格式的电子邮件地址字符串进行模式匹配:
名字.姓氏@gmail.com
我想确保在“@”字符之前的某个地方有一个句点,并且“@”字符之后的字符与 gmail.com 匹配
您需要点前后的一些符号,所以我建议.+\..+@gmail\.com
.
.+
表示任何符号 (.) 可以出现 1 次或多次 (+)
\.
表示点符号;用反斜杠筛选以抑制 和 的特殊含义,.
@gmail
应该com
完全匹配。
另请参见正则表达式基本语法参考
编辑:帐户名称的 gmail 规则仅允许拉丁字母、数字和点,因此更好的正则表达式是
[a-zA-Z0-9]+\.[a-zA-Z0-9]+@gmail\.com
检查有效的电子邮件
^(?:(?!.*?[.]{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,})$
强制规则:
你还没有告诉我们你需要什么样的正则表达式风格,但是这个例子适合大多数人:
.*\..*@gmail.com
.
假设任何字符都是Unix 风格:.*\..*@gmail\.com
.
编辑:在域中转义
您甚至不需要正则表达式,因为您的要求非常具体。不确定您使用的是什么语言,但大多数会支持拆分@
并检查.
. 在蟒蛇中:
name, _, domain = email.partition('@')
if '.' in name and domain == 'gmail.com':
# valid
我使用以下正则表达式来验证电子邮件地址。我还为此添加了一个 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 之类的电子邮件也在此处检查并显示为假。;-)