Python(09)正則表達式

特殊字符

1. 基本元字符

.:匹配除換行符以外的任意單個字符。
*:匹配前面的元素零次或多次。
+:匹配前面的元素一次或多次。
?:匹配前面的元素零次或一次。

2. 定量符

{n}:匹配前面的元素恰好 n 次。
{n,}:匹配前面的元素至少 n 次。
{n,m}:匹配前面的元素至少 n 次,但不超過 m 次。

3. 字符類

[abc]:匹配方括號內的任意一個字符(在這個例子中是 a、b 或 c)。
[^abc]:匹配不在方括號內的任意一個字符(在這個例子中是除了 a、b 和 c 以外的任何字符)。
[a-z]:匹配指定范圍內的任意一個字符(在這個例子中是從 a 到 z 的任意一個小寫字母)。
\d:匹配任意一個數字,等同于 [0-9]。
\D:匹配任意一個非數字字符,等同于 [^0-9]。
\w:匹配任意一個字母數字字符,包括下劃線,等同于 [a-zA-Z0-9_]。
\W:匹配任意一個非字母數字字符,包括下劃線,等同于 [^a-zA-Z0-9_]。
\s:匹配任意一個空白字符,包括空格、制表符、換頁符等,等同于 [ \t\n\r\f\v]。
\S:匹配任意一個非空白字符,等同于 [^ \t\n\r\f\v]。

4. 錨點

^:匹配輸入字符串的開始位置。
$:匹配輸入字符串的結束位置。
\b:匹配單詞邊界。
\B:匹配非單詞邊界。

5. 分組和引用

(abc):將 abc 視為一個整體進行匹配,并捕獲該分組。
(?:abc):將 abc 視為一個整體進行匹配,但不捕獲該分組。
\1、\2 等:引用之前捕獲的分組。

6. 選擇

a|b:匹配 a 或 b。

7. 轉義字符

\:用于轉義特殊字符,例如 . 匹配實際的點號,而不是任意字符。

常用方法

  • 1.?re.search(pattern, string[, flags])?
    在字符串中搜索第一個與正則表達式模式匹配的結果,返回一個Match對象,如果沒有找到匹配項則返回None。
  • 2.?re.match(pattern, string[, flags])?
    從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回None。
  • 3.?re.fullmatch(pattern, string[, flags])?
    如果整個字符串完全匹配正則表達式模式,則返回一個Match對象,否則返回None。
  • 4.?re.findall(pattern, string[, flags])?
    返回字符串中所有與正則表達式模式匹配的子串,作為一個列表返回。
  • 5.?re.finditer(pattern, string[, flags])?
    返回一個迭代器,其中每個元素都是一個Match對象,對應于字符串中所有與正則表達式模式匹配的部分。
  • 6.?re.sub(pattern, repl, string[, count, flags])?
    將字符串中所有與正則表達式模式匹配的部分替換為指定的字符串,并返回替換后的字符串。
  • 7.?re.split(pattern, string[, maxsplit, flags])?
    根據正則表達式模式分割字符串,返回一個列表,包含分割后的各個部分。
  • 8.?re.compile(pattern[, flags])?
    編譯正則表達式模式,返回一個正則表達式對象,可以用于后續的匹配操作,提高效率。

常見正則使用

QQ號:[1 - 9][0 - 9]{4, }(騰訊QQ號從10000開始)
帳號(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\w{5,17}$
身份證號(15位、18位數字):^\d{15}|\d{18}$
短身份證號碼(數字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

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

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

相關文章

k8s容器放開鎖內存限制

參考:https://access.redhat.com/solutions/1257953 問題 nccl-test容器docker.io/library/nccl-tests:24.12中跑mpirun,buff設置為NCCL_BUFFSIZE503316480 提示out of memory: pod-1:78:91 [0] include/alloc.h:114 NCCL WARN Cuda failure …

基于Zigee的溫度數據采集系統

大家好,本文帶來的是單片機課設-基于Zigee的溫度數據采集系統。 一、設計內容和要求 基于Zigbee的數據采集系統 1.1設計內容 (1)分析對比Bluetooth、Zigbee、Lora方式組網的基本原理和性能差異,撰寫分析報告; &#xf…

ATH12K 驅動框架分析

文章目錄 Linux Wireless 驅動框架深入分析 **1. 核心框架層次結構** **1.1 cfg80211 子系統 (`net/wireless/`)** **1.2 mac80211 子系統 (`net/mac80211/`)** **2. ath12k 驅動架構分析** **2.1 核心管理文件** **2.2 數據路徑文件** **2.3 平臺接口文件** **2.4 功能模塊文件…

OSPF路由協議單區域

RIP的不足 以跳數評估的路由并非最優路徑 如果RTA選擇S0/0傳輸,傳輸需時會大大縮短為3sRIP協議限制網絡直徑不能超過16跳 收斂速度慢 RIP定期路由更新 – 更新計時器:定期路由更新的時間間隔,默認30秒。 – 失效計時器:失效計時器…

Kubernetes部署與管理Scrapy爬蟲:企業級分布式爬蟲平臺構建指南

引言:Kubernetes在爬蟲領域的戰略價值在大規模數據采集場景中,??容器化爬蟲管理??已成為企業級解決方案的核心。根據2023年爬蟲技術調查報告:采用Kubernetes的爬蟲系統平均資源利用率提升??65%??故障恢復時間從小時級縮短至??秒級?…

Web-Machine-N7靶機攻略

一.環境準備(VBox,kali虛擬機,靶機) 1.1Vbox下載地址: Downloads – Oracle VirtualBox 1.2將N7導入到這個虛擬機中 1.3將kali和Vbox都設置成橋接模式 1.4開啟靶機 若鼠標出不來可以使用組合技,CtrlAltDelete強制退出 二.信息…

用毫秒級視頻回傳打造穩定操控閉環之遠程平衡控制系統技術實踐

在工業自動化、遠程機器人、無人裝備等復雜作業場景中,遠程實時操控正逐步取代傳統“監控指令”模式,成為提升效率與保障安全的關鍵能力。尤其在高風險、高精度的應用環境中,操作者不僅要“能控”,更要“看得準、反應快”。 真正…

瑞薩電子RA-T MCU系列新成員RA2T1——電機控制專家

RA2T1系列微控制器基于64MHz ArmCortex-M23內核設計,專為單電機控制應用而優化。RA2T1集成PWM定時器,以及配備3個采樣保持電路的A/D轉換器等先進的模擬功能,適用于電動工具,風扇和家用電器等高效的低端電機控制方案。RA2T1支持1.6…

Java排序算法之<選擇排序>

目錄 1、選擇排序 1.1、介紹 1.2、穩定性 2、執行流程 3、java實現 4、優缺點 總結:Java 排序算法進階路線 O(n) 算法(適合學習原理) 冒泡排序(最慢)→ 選擇排序 → 插入排序(推薦先學) …

ESP8266 http收發數據

1.先修改基礎配置 make menuconfig 打開配置菜單 選擇component config 然后選擇 修改波特率為115200 保存退出 2.修改彩色日志打印的 在component config目錄下找到log output 選中點擊空格關掉彩色日志輸出,這樣正常串口打印就沒有亂碼了 然后保存退出 3…

ZLMediaKit 源代碼入門

ZLMediaKit 是一個基于 C11 開發的高性能流媒體服務器框架,支持 RTSP、RTMP、HLS、HTTP-FLV 等協議。以下是源代碼入門的詳細指南: 1. 源碼結構概覽 主要目錄結構: text ZLMediaKit/ ├── cmake/ # CMake 構建配置 ├── …

智能Agent場景實戰指南 Day 21:Agent自主學習與改進機制

【智能Agent場景實戰指南 Day 21】Agent自主學習與改進機制 文章內容 開篇 歡迎來到"智能Agent場景實戰指南"系列的第21天!今天我們將深入探討智能Agent的自主學習與改進機制——這是使Agent能夠持續提升性能、適應動態環境的核心能力。在真實業務場景…

微信小程序中英文切換miniprogram-i18n-plus

原生微信小程序使用 miniprogram-i18n-plus第一步:npm install miniprogram-i18n-plus -S安裝完成后,會在項目文件文件夾 node_modules文件里生成 miniprogram-i18n-plus, 然后在工具欄-工具-構建npm,然后看到miniprogram_npm里面…

LeetCode 127:單詞接龍

LeetCode 127:單詞接龍問題本質:最短轉換序列的長度 給定兩個單詞 beginWord 和 endWord,以及字典 wordList,要求找到從 beginWord 到 endWord 的最短轉換序列(每次轉換僅改變一個字母,且中間單詞必須在 wo…

docker搭建ray集群

1. 安裝docker 已安裝過docker 沒安裝流程 啟動 Docker 服務: sudo systemctl start docker sudo systemctl enable docker # 設置開機即啟動docker驗證 Docker 是否安裝成功: docker --version2. 部署ray # 先停止docker服務 systemctl stop docker…

【iOS】SideTable

文章目錄前言1??Side Table 的核心作用:擴展對象元數據存儲1.1 傳統對象的內存限制1.2 Side Table 的定位:集中式元數據倉庫2??Side Table 的底層結構與關聯2.1 Side Table 與 isa 指針的關系2.2 Side Table 的存儲結構2.3 SideTable 的工作流程3??…

【Spring Cloud Gateway 實戰系列】高級篇:服務網格集成、安全增強與全鏈路壓測

一、服務網格集成:Gateway與Istio的協同作戰在微服務架構向服務網格演進的過程中,Spring Cloud Gateway可與Istio形成互補——Gateway負責南北向流量(客戶端到集群)的入口管理,Istio負責東西向流量(集群內服…

一文說清楚Hive

Hive作為Apache Hadoop生態的核心數據倉庫工具,其設計初衷是為熟悉SQL的用戶提供大規模數據離線處理能力。以下從底層計算框架、優點、場景、注意事項及實踐案例五個維度展開說明。 一、Hive底層分布式計算框架對比 Hive本身不直接執行計算,而是將HQL轉換…

SeaweedFS深度解析(三):裸金屬單機和集群部署

#作者:閆乾苓 文章目錄2.2.4 S3 Server(兼容 Amazon S3 的接口)2.2.5 Weed(命令行工具)3、裸金屬單機和集群部署3.1 裸金屬單機部署3.1.1安裝 SeaweedFS3.1.2 以Master模式啟動2.2.4 S3 Server(兼容 Amazon…

相機ROI 參數

相機的 ROI(Region of Interest,感興趣區域) 參數,是指通過設置圖像傳感器上 特定區域 作為有效成像區域,從而只采集該區域的圖像數據,而忽略其他部分。這一功能常用于工業相機、科研相機、高速相機等場景&…