[力扣每日一練]關于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 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

孰能生巧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

office_word中使用宏以及DeepSeek

前言 Word中可以利用DeepSeek來生成各種宏,從而生成我們需要各種數據和圖表,這樣可以大大減少我們手工的操作。 1、Office的版本 采用的是微軟的office2016,如下圖: 2、新建一個Word文檔 3、開啟開發工具 這樣菜單中的“開發工具…

深度學習框架PyTorch——從入門到精通(10)PyTorch張量簡介

這部分是 PyTorch介紹——YouTube系列的內容,每一節都對應一個youtube視頻。(可能跟之前的有一定的重復) 創建張量隨機張量和種子張量形狀張量數據類型 使用PyTorch張量進行數學與邏輯運算簡單介紹——張量廣播關于張量更多的數學操作原地修改…

Oracle 10G DG 修復從庫-磁盤空間爆滿導致從庫無法工作

一、背景 由于近期在做應用升級和系統改造,導致幾天沒怎么觀察DG庫的狀態。這幾天歸檔日志暴漲導致磁盤空間用盡,從庫無法接收主庫的歸檔日志,且從庫無法工作。經過檢查,發現從庫所需要的日志在主庫均存在。所以當前文檔使用歸檔…

【踩坑系列】使用httpclient調用第三方接口返回javax.net.ssl.SSLHandshakeException異常

1. 踩坑經歷 最近做了個需求,需要調用第三方接口獲取數據,在聯調時一直失敗,代碼拋出javax.net.ssl.SSLHandshakeException異常, 具體錯誤信息如下所示: javax.net.ssl.SSLHandshakeException: sun.security.validat…

算法基礎——模擬

目錄 1 多項式輸出 2.蛇形方陣 3.字符串的展開 模擬,顧名思義,就是題?讓你做什么你就做什么,考察的是將思路轉化成代碼的代碼能?。這類題?般較為簡單,屬于競賽??的簽到題(但是,萬事?絕對&#xff…

PrimeTime生成.lib竟暗藏PG添加Bug

在primeTime里生成lib,如何能帶上相關的pg信息? 這是一位群友的發問,就這個問題總結了下可能的原因和解決步驟: 概念 PrimeTime是Synopsys的靜態時序分析工具,通常用于在設計的各個階段進行時序驗證。 1&#xff09…

yolo系列算法最新進展

YOLO(You Only Look Once)系列算法作為目標檢測領域的代表性模型,自2016年推出以來不斷迭代,在速度與精度之間尋求平衡。截至2024年,其最新進展主要集中在以下幾個方面: ?1. YOLOv8 的優化與擴展? ?官方…

動態規劃:路徑類dp

路徑類dp 1.矩陣的最小路徑和_牛客題霸_牛客網 #include<iostream> #include<cstring> using namespace std;const int N 510; int f[N][N]; int n, m;int main() {cin >> n >> m;memset(f, 0x3f3f3f, sizeof(f));f[0][1] 0;for (int i 1; i < …

性能測試理論基礎-性能指標及jmeter中的指標

1、什么是性能測試 通過一定的手段,在多并發下情況下,獲取被測系統的各項性能指標,驗證被測系統在高并發下的處理能力、響應能力,穩定性等,能否滿足預期。定位性能瓶頸,排查性能隱患,保障系統的質量,提升用戶體驗。 2、什么樣的系統需要做性能測試 用戶量大,頁面訪問…

Debian,Ubuntu,設置/etc/vim/vimrc.tiny解決:上下左右變成ABCD,backspace退格鍵失效的問題

Debian,Ubuntu,用設置/etc/vim/vimrc.tiny解決:上下左右變成ABCD,backspace退格鍵失效的問題 Debian,Ubuntu, 默認的vi 在編輯模式下的上下左右變成ABCD , 退格鍵也失效 解決辦法1, 卸載重裝vim sudo apt remove vim; sudo apt install -y vim解決辦法2: 修改 /etc/vim/vimr…

Redis 單機16個db,集群只有一個的基本知識

目錄 前言1. 基本知識2. 配置 前言 &#x1f91f; 找工作&#xff0c;來萬碼優才&#xff1a;&#x1f449; #小程序://萬碼優才/r6rqmzDaXpYkJZF 爬蟲神器&#xff0c;無代碼爬取&#xff0c;就來&#xff1a;bright.cn Java基本知識&#xff1a; java框架 零基礎從入門到精通…

藍橋杯C++基礎算法-多重背包(優化)

這段代碼實現了一個多重背包問題的動態規劃解法&#xff0c;并且使用了二進制拆分&#xff08;或稱二進制優化&#xff09;來優化物品的數量處理。這種方法可以顯著減少狀態轉移的次數&#xff0c;提高算法的效率。以下是代碼的詳細思路解析&#xff1a; 1. 問題背景 給定 n 個…

FALL靶機攻略

1.下載靶機&#xff0c;導入靶機 下載地址&#xff1a;https://download.vulnhub.com/digitalworld/FALL.7z 開啟靶機。 2. 靶機、kali設置NAT網卡模式 3. kali掃描NAT網卡段的主機 kali主機 nmap掃描&#xff1a;nmap 192.168.92.1/24 判斷出靶機ip是192.168.92.133。開啟…

notepad++代碼查看器分享

文章目錄 &#x1f4dd; Notepad 簡介&#x1f527; 主要特點打開.c文件示意高亮語法展示全局替換功能展示 &#x1f4dd; Notepad 簡介 Notepad 是一款 免費的開源文本編輯器和源代碼編輯器&#xff0c;運行在 Windows 系統上。 它是對 Windows 自帶“記事本”的增強版本&…

詳細介紹Spring MVC的執行流程是怎么樣的?

Spring MVC 是 Spring 框架的一部分&#xff0c;用于構建 Web 應用程序。它的執行流程如下&#xff1a; 前端控制器&#xff08;DispatcherServlet&#xff09;接收請求&#xff1a;用戶通過瀏覽器發送 HTTP 請求到服務器&#xff0c;請求首先被前端控制器 DispatcherServlet 接…

MySQL中的內連接與外連接詳解:基礎與進階應用

文章目錄 表的內連和外連&#xff08;重點&#xff09;內連接外連接左外連接右外連接 簡單回顧 表的內連和外連&#xff08;重點&#xff09; 表的連接分為內連和外連 內連接 內連接實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選&#xff0c;我們前面學習的查詢都…

動態內存分配與內存對齊

在C語言及其他低級編程語言中,內存管理是一個至關重要的主題。動態內存分配和內存對齊是確保程序高效和穩定運行的關鍵因素。本文將深入探討動態內存分配的原理,內存對齊的概念,并解釋它們如何共同影響程序的性能和資源利用。 一、動態內存分配簡介 1.1 動態內存分配的概念…

Milvus×最新版DeepSeek v3:對標Claude,本地數據五分鐘寫網站

前言 就在昨晚&#xff0c;DeepSeek v3推出了新版本V3-0324&#xff0c;再次一夜爆火。 雖然官方表示“這只是一次小升級”“API接口和使用方式不變”&#xff0c;但經過Zilliz的第一時間實測&#xff0c;我們發現無論是邏輯能力&#xff0c;還是編程能力&#xff0c;相較原本的…

6.M-LAG專題

M-LAG 的作用及特點 能不能簡單的描述以下M-LAG的工作原理? 跨設備鏈路聚合&#xff0c;將兩臺物理設備在聚合層面虛擬成一臺設備來實現跨設備鏈路聚合&#xff0c;從而提供設備級冗余保護和流量負載分擔 M-LAG(跨設備鏈路聚合)是基于IEEEP802.1A協議的跨設備鏈路聚合技術。…

每日免費分享之精品wordpress主題系列~DAY16

主題介紹&#xff1a; 今日在網上尋找wordpress主題的時候逛到了大叔的網站&#xff0c;趕腳這個主題蠻不錯的&#xff0c;于是百度一下&#xff0c;果然&#xff0c;這個主題很受歡迎。作為主題下載站追夢者也不甘落后&#xff0c;馬上就發布出來了&#xff0c;希望對你們有用…