[每日一练]MySQL中的正则表达式的应用
#该题目来源于力扣:
1517. 查找拥有有效邮箱的用户 - 力扣(LeetCode)
题目要求 :
表: Users
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| user_id | int |
| name | varchar |
| mail | varchar |
+---------------+---------+
user_id 是该表的主键(具有唯一值的列)。
该表包含了网站已注册用户的信息。有一些电子邮件是无效的。
编写一个解决方案,以查找具有有效电子邮件的用户。
一个有效的电子邮件具有前缀名称和域,其中:
前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线 '_' ,点 '.' 和/或破折号 '-' 。前缀名称 必须 以字母开头。
域 为 '@leetcode.com' 。
以任何顺序返回结果表。
思路流程:
- 首先,字符串的开头必须是英文字符串,可以表达为[a-zA-Z],由于是第一个字符的要求,写到这里就结束了
- 在开头字符串后,给出了字符串的限定要求:可以多次出现英文字符以及数字字符,字符“-”“.”“_”同样可以多次出现,我们可以表示为:[a-zA-Z0-9\\.\\_\\-]*来表达可以出现多次的字符串限定范围
- 最后的域名要求必须是力扣网站:@leetcode.com只出现一次,我们可以直接将它放在我们的正则表达式之后,但是注意,我们需要对“.”进行转义
- 最终我们用 “^……$”来将字符串的范围限定
代码实现:
# Write your MySQL query statement below
SELECT *
FROM Users
WHERE mail regexp '^[a-zA-Z][a-zA-Z0-9\\.\\_\\-]*@leetcode\\.com$'