# 问题 3:匹配邮箱
正则表达式在验证 HTML 表单的输入时通常很有用。由于规范 (opens new window)的复杂性,电子邮件很难正确匹配,因此我建议使用内置语言或框架函数,而不是自己处理。但是,您依然可以使用我们迄今所学的知识,非常轻松地创建一个相当健壮的正则表达式,它能够匹配大量常见的电子邮件。
需要注意的一点是,许多人使用一次性的 加号地址 (opens new window)(plus-addressing),例如 "name+filter@gmail.com",邮件还是会发送到 "name@gmail.com",但是可以作一些过滤操作。此外,有些域名有不止一个部分,例如,您可以在 "hellokitty.hk.com" 注册域名,并使用一个形如 "ilove@hellokitty.hk.com" 的邮箱,因此在匹配电子邮件的域名部分时必须小心。
下面是一些常见的电子邮箱,请尝试捕获电子邮件的名称,不包括筛选器 (+ 字符和之后) 和域 (@ 字符和之后) 部分。
练习 3:匹配邮箱
Task | Text | Capture Groups | Result |
capture | tom@hogwarts.com | tom | |
capture | tom.riddle@hogwarts.com | tom.riddle | |
capture | tom.riddle+regexone@hogwarts.com | tom.riddle | |
capture | tom@hogwarts.eu.com | tom | |
capture | potter@hogwarts.com | potter | |
capture | harry@hogwarts.com | harry | |
capture | hermione+regexone@hogwarts.com | hermione |
解决上述任务以继续下一个问题,或者查看答案。