您的位置:首页 > 健康 > 养生 > 株洲本地新闻_室内设计培训班排行榜_镇江网站建设推广_营销网站建设大概费用

株洲本地新闻_室内设计培训班排行榜_镇江网站建设推广_营销网站建设大概费用

2025/3/31 20:31:35 来源:https://blog.csdn.net/2302_77975940/article/details/146564843  浏览:    关键词:株洲本地新闻_室内设计培训班排行榜_镇江网站建设推广_营销网站建设大概费用
株洲本地新闻_室内设计培训班排行榜_镇江网站建设推广_营销网站建设大概费用

一:题目要求

表:Users+-----------------+---------+
| Column Name     | Type    |
+-----------------+---------+
| user_id         | int     |
| email           | varchar |
+-----------------+---------+
(user_id) 是这张表的唯一主键。
每一行包含用户的唯一 ID 和邮箱地址。
编写一个解决方案来查找所有 合法邮箱地址。一个合法的邮箱地址符合下述条件:只包含一个 @ 符号。
以 .com 结尾。
@ 符号前面的部分只包含 字母数字 字符和 下划线。
@ 符号后面与 .com 前面的部分 包含 只有字母 的域名。
返回结果表以 user_id 升序 排序。示例:输入:Users 表:+---------+---------------------+
| user_id | email               |
+---------+---------------------+
| 1       | alice@example.com   |
| 2       | bob_at_example.com  |
| 3       | charlie@example.net |
| 4       | david@domain.com    |
| 5       | eve@invalid         |
+---------+---------------------+
输出:+---------+-------------------+
| user_id | email             |
+---------+-------------------+
| 1       | alice@example.com |
| 4       | david@domain.com  |
+---------+-------------------+
解释:alice@example.com 是合法的因为它包含一个 @,alice 是只有字母数字的,并且 example.com 以字母开始并以 .com 结束。
bob_at_example.com 是不合法的因为它包含下划线但没有 @。
charlie@example.net 是不合法的因为域名没有以 .com 结尾。
david@domain.com 是合法的因为它满足所有条件。
eve@invalid 是不合法的因为域名没有以 .com 结尾。
结果表以 user_id 升序排序。

可见要求是:

1.只包含一个特殊字符@

2.结尾必须是字符.com 

3.@前的字符有且只能有大小写字母以及下划线

4.@后,.com前的字符只能是大小写字母

二:MySQL实现

1.在正则表达式中插入一个@即可

2.最后以//.com$.$结尾表示结尾的字符是.com,\\表示符号转义为字符串

3.[a-zA-Z_]*在@前表示大小写字母和字符串,*表示出现了多次

4.在@和\\.com$间:[a-zA-Z]*表示出现大或小写字母多次

最后注意在开头添加^表示正则表达式的开始,与$相呼应

# Write your MySQL query statement below
SELECT *
FROM Users
WHERE email regexp '^[a-zA-Z0-9_]*@[a-zA-Z]*\\.com$'

三:pandas实现

与MySQL相似,注意,python中的正则表达式转义反斜杠只需要一个即可,这与MySQL转义需要两个反斜杠不同。由于python中的正则表达式匹配只能应用于一维数据,所以我将匹配结果返回到一个变量中,然后再将该变量放到二维数据集的切片中,以此来实现布尔值匹配

import pandas as pddef find_valid_emails(users: pd.DataFrame) -> pd.DataFrame:data=users['email'].str.contains('^[0-9a-zA-Z_]*@[a-zA-Z]*\.com$')#进行布尔值过滤users = users[data]return users

孰能生巧

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com