表: Users
+---------------+---------+ | Column Name | Type | +---------------+---------+ | user_id | int | | name | varchar | | mail | varchar | +---------------+---------+ user_id 是该表的主键(具有唯一值的列)。 该表包含了网站已注册用户的信息。有一些电子邮件是无效的。
编写一个解决方案,以查找具有有效电子邮件的用户。
一个有效的电子邮件具有前缀名称和域,其中:
- 前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线
'_'
,点'.'
和/或破折号'-'
。前缀名称 必须 以字母开头。 - 域 为
'@leetcode.com'
。
以任何顺序返回结果表。
解题思路:
1.用正则表达式表达出有效的电子邮件
2.筛选出有效的电子邮件
import pandas
import re
# ^代表开头
# [a-zA-Z]代表包含字母
# \w 代表匹配一个单词字符。它包括字母(大写或小写)、数字和下划线。
具体而言,\w 等价于字符类 [a-zA-Z0-9_]
# *代表出现多次
pattern = r'^[a-zA-Z][\w.-]*@leetcode\.com$'
# 筛选出匹配正则表达式的行
users['mail'] = users['mail'].where(users['mail'].str.match(pattern))
users =users[~ users['mail'].isna()]
return users