当前位置: 首页 > news >正文

[力扣每日一练]关于MySQL和pandas的正则表达式应用

一:题目要求

表: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 pd

def 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

孰能生巧

相关文章:

  • caddy常用配置
  • torchvision中数据集的使用
  • ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>
  • 科技赋能建筑业变革:中建海龙创新引领高质量发展新路径
  • 深度解读:智能体2.0 AI Agent多推演进
  • 第七章:Python中pygame库的使用:开发小游戏
  • 【Java】注解
  • 单店效率优化促毛利增长,雍禾医疗业绩稳步跑
  • 服装零售行业数据分析方案
  • StarRocks 中 CURRENT_TIMESTAMP 和 current_time 分区过滤问题
  • Ai工作流工具有那些如Dify、coze扣子等以及他们是否开源
  • CF每日5题Day4(1400)
  • 程序员软件工具推荐列表
  • 图解AUTOSAR_SWS_FlashTest
  • 第十章:Pyinstaller库打包Python项目为Windows可执行文件.exe
  • 6-项目负责人-创建项目集
  • 洛谷题单1-B2005 字符三角形-python-流程图重构
  • 【MYSQL】Windows 下 CMD 操作数据库指南
  • 基于TrustZone的嵌入式系统安全隔离设计
  • 【解决】导入PNG图片,转 Sprite 格式成功但资产未生效问题
  • 设计师必须知道的网站/百度seo排名优化费用
  • 网站建设可以帮助企业/深圳搜索引擎优化收费
  • 南昌集团网站建设/kol营销
  • 石家庄网站开发培训/seo专业术语
  • 园林企业建设网站/企业网站的类型
  • 南昌网站开发技术/网页模板素材