【Leetcode】高频SQL基础题--1327.查找拥有有效邮箱的用户
【Leetcode】高频SQL基础题–1327.查找拥有有效邮箱的用户
要求:编写一个解决方案,以查找具有有效电子邮件的用户。
一个有效的电子邮件具有前缀名称和域,其中:前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线 '_' ,点 '.' 和(或)破折号 '-' 。前缀名称 必须 以字母开头。
域 为 '@leetcode.com' 。
以任何顺序返回结果表。
解题思路:
1、用正则表达式,使用 REGEXP_LIKE函数并指定区分大小写 (‘c’),确保了邮箱域名 @leetcode.com的精确匹配(要求小写)
• ^[a-zA-Z]:匹配以字母开头的字符串。• [a-zA-Z0-9_.-]*:匹配零个或多个允许的字符(字母、数字、下划线、点、破折号)。• @leetcode\\.com$:匹配域部分“@leetcode.com”,其中点(.)需要转义为\.(在MySQL字符串中写为\\.),$表示字符串结束。
注意:
WHERE mail REGEXP '^[a-zA-Z][a-zA-Z0-9_.-]*@leetcode\\.com$';
-- 会有’com‘大小写问题
代码:
SELECTuser_id,name,mail
FROM Users
WHERE REGEXP_LIKE(mail, '^[a-zA-Z][a-zA-Z0-9._-]*@leetcode\\.com$', 'c');