题100:
根据下表写一条 SQL 语句,查询拥有有效邮箱的用户。
其中有效的邮箱包含符合下列条件的前缀名和域名:
前缀名是包含字母(大写或小写)、数字、下划线 ‘_’、句点 ‘.’ 和/或横杠 ‘-’ 的字符串。前缀名必须以字母开头,域名是 ‘@leetcode.com’ 。
解题思路:REGEXP 就是 regular expression 正则表达式 的意思:
- ^ 表示以后面的字符为开头;
- [] 表示括号内任意字符;
- − - − 表示连续;
- ∗ * ∗ 表示重复前面任意字符任意次数;
- \ 用来转义后面的特殊字符,以表示字符原本的样子,而不是将其作为特殊字符使用
- $ 表示以前面的字符为结尾
本题:
(1)前缀名以字母开头:1;
(2)前缀名包含字母(大写或小写)、数字、下划线_、句点. 和 或 横杠-:[a-zA-Z0-9_.-]*
(3)以域名’@leetcode.com’结尾@leetcode.com$
select
*
from
Users
where
mail regexp '^[a-zA-Z][a-zA-Z0-9\_\.\-]*@leetcode\\.com$';
a-zA-Z ↩︎