4.7正則表達式

1.字符匹配

一般字符匹配自身
.?匹配任意字符(換行符\n除外),一個點占一位
\轉義字符,使其后一個字符改變原來的意思(\.就是.)
[......]字符集,對應的位置可以是字符集中的任意字符.字符集中的字符可以逐個列出,也可以給出范圍如[abc]或[a-c] [^abc] 表示取反,即非abc

2.預定字符集匹配

\d數字:[0-9]a\dca1c
\D非數字[\D]a\Dcabc
\s匹配任何空白字符:[空格\t\r\n\f\v]a\sca c
\S非空白字符:[\S]a\Scabc
\w匹配包括下劃線在內的任何字符:[A-Za-z0-9_]a\wcabc
\W匹配非字母字符,即匹配特殊字符a\Wca c

3.字符串數據詞匹配

*匹配前一個字符0次或者多次
+匹配前一個字符1次或者無限次
?匹配一個字符0次或1次
{}{m匹配前一個字符m次,{m,n匹配前一個字符m至n次,若省略n次,則匹配m至無限次}

4.字符串邊界匹配

^匹配字符串開頭,在多行模式中匹配每一行的開頭
$匹配字符串末尾,在多行模式中匹配每一行的末尾

5.在python中使用?

? ? ? ? 5.1match方法的使用

? ? ? ??

# re是python內置的模塊
import re# 使用 re.compile()函數將正則表達式模式 r'\d+' 編譯成一個
pattern = re.compile(r'\d+')# 以下對 pattern.match() 方法參數的說明
# 參數2 開始位置 指定從字符串的哪個索引位置開始進行匹配
# 參數3 結束位置 指定匹配操作的結束索引位置
# 結束位置是不包含的,即匹配操作會在該索引之前結束
# 匹配一次然后結束,即只要找到第一個匹配就停止匹配
# 匹配一次就結束,即找到第一個匹配就停止匹配
m1 = pattern.match('one12345678',3,7)# 調用m1對象的group方法返回匹配到的字符串
print(m1.group())

? ? ? ? 5.2 search方法的使用

import repattern = re.compile(r'\d+')m1 = pattern.search('one123456789two')
print(m1.group())# 也是一次匹配

? ? ? ? 5.3findall方法的使用

? ? ? ?

import repattern = re.compile(r'\d+')result = pattern.findall('hello 123 world 456')print(result)# pattern.findall() 是 Pattern 對象的一個方法,用于在指定的字符串中查找所有匹配正則表達式模式的子字符串。
# 'hello 123 world 456' 是要搜索的字符串。
# findall() 方法返回一個列表,列表中的每個元素都是一個匹配到的子字符串。如果沒有找到匹配項,返回一個空列表。

6.split函數的使用

import re# 定義一個字符串str1 = 'a,b,c,d,e'# 使用字符串的split方法分割print(str.split(','))str2 = 'a,b;;c     d'# 編譯一個正則表達式patterm = re.compile(r'[\s,;]+')# 使用編譯好的正則表達式模式對字符串 str2進行分割
print(pattern.split(str2))

6.sub方法的使用

import restring = '<h1 class="test1">Hello World</h1>'# 編譯一個正則表達式 匹配單個數字pattern = re.compile(r'\d')# 使用sub方法將字符串匹配到的數字 換成2
print(pattern.sub('2',string))# 使用第三個參數  是更換幾次
print(pattern.sub('2',string,1))# 編譯一個正則表達式模式,用于匹配特定格式的 HTML 標簽,并將 class 屬性的值命名為 classname
pattern = re.compile(r'(.\d)\sclass=(?P<classname>.*>?)".*?</(\\)')
# 使用search方法
print(pattern.search(string).gorup())# 定義一個函數 fun,用于處理替換操作
def fun(m):"""該函數用于處理正則表達式替換操作。:param m: 匹配對象,包含匹配到的信息:return: 替換后的字符串"""# 從匹配對象中獲取 classname 組的內容,并拼接字符串return 'after sub' +m.group('classname')# 使用 sub 方法將字符串 string 中匹配到的內容替換為 fun 函數處理后的結果,并打印結果
print(pattern.sub(fun,string))

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

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

相關文章

Fortran 中讀取 MATLAB 生成的數據文件

在 Fortran 中讀取 MATLAB 生成的數據文件&#xff0c;可以通過以下幾種方法實現&#xff0c;包括使用開源工具和手動解析&#xff1a; 1. 使用開源工具&#xff1a;MATFOR MATFOR 是一個商業/開源混合工具&#xff08;部分功能免費&#xff09;&#xff0c;提供 Fortran 與 M…

壓測工具開發實戰篇(四)——client子窗口功能

你好&#xff0c;我是安然無虞。 文章目錄 樹控件添加文件補充學習: 函數定義中循環體里的局部變量補充學習: 動態添加對象屬性 刷新文件上下文菜單 (右鍵菜單)實現右鍵菜單功能 編輯節點文本 在學習本篇文章之前, 建議先看一下上篇介紹MDI子窗口的文章: 壓測工具開發實戰篇(三…

PyTorch使用(4)-張量拼接操作

文章目錄 張量拼接操作1. torch.cat 函數的使用1.1. torch.cat 定義1.2. 語法1.3. 關鍵規則 1.4. 示例代碼1.4.1. 沿行拼接&#xff08;dim0&#xff09;1.4.2. 沿列拼接&#xff08;dim1&#xff09;1.4.3. 高維拼接&#xff08;dim2&#xff09; 1.5. 錯誤場景分析1.5.1. 維度…

linux命令之yes(Linux Command Yes)

linux命令之yes 簡介與功能 yes 命令在 Linux 系統中用于重復輸出一行字符串&#xff0c;直到被殺死&#xff08;kill&#xff09;。該命令最常見的用途是自動化控制腳本中的交互式命令&#xff0c;以便無需用戶介入即可進行連續的確認操作。 用法示例 基本用法非常簡單&am…

《算法筆記》10.3小節——圖算法專題->圖的遍歷 問題 B: 連通圖

題目描述 給定一個無向圖和其中的所有邊&#xff0c;判斷這個圖是否所有頂點都是連通的。 輸入 每組數據的第一行是兩個整數 n 和 m&#xff08;0<n<1000&#xff09;。n 表示圖的頂點數目&#xff0c;m 表示圖中邊的數目。如果 n 為 0 表示輸入結束。隨后有 m 行數據…

使用Prometheus監控systemd服務并可視化

實訓背景 你是一家企業的運維工程師&#xff0c;需將服務器的systemd服務監控集成到Prometheus&#xff0c;并通過Grafana展示實時數據。需求如下&#xff1a; 數據采集&#xff1a;監控所有systemd服務的狀態&#xff08;運行/停止&#xff09;、資源占用&#xff08;CPU、內…

OpenCV--圖像邊緣檢測

在計算機視覺和圖像處理領域&#xff0c;邊緣檢測是極為關鍵的技術。邊緣作為圖像中像素值發生急劇變化的區域&#xff0c;承載了圖像的重要結構信息&#xff0c;在物體識別、圖像分割、目標跟蹤等眾多應用場景中發揮著核心作用。OpenCV 作為強大的計算機視覺庫&#xff0c;提供…

Rollup詳解

Rollup 是一個 JavaScript 模塊打包工具&#xff0c;專注于 ES 模塊的打包&#xff0c;常用于打包 JavaScript 庫。下面從它的工作原理、特點、使用場景、配置和與其他打包工具對比等方面進行詳細講解。 一、 工作原理 Rollup 的核心工作是分析代碼中的 import 和 export 語句…

Chapter 7: Compiling C++ Sources with CMake_《Modern CMake for C++》_Notes

Chapter 7: Compiling C Sources with CMake 1. Understanding the Compilation Process Key Points: Four-stage process: Preprocessing → Compilation → Assembly → LinkingCMake abstracts low-level commands but allows granular controlToolchain configuration (c…

5分鐘上手GitHub Copilot:AI編程助手實戰指南

引言 近年來&#xff0c;AI編程工具逐漸成為開發者提升效率的利器。GitHub Copilot作為由GitHub和OpenAI聯合推出的智能代碼補全工具&#xff0c;能夠根據上下文自動生成代碼片段。本文將手把手教你如何快速安裝、配置Copilot&#xff0c;并通過實際案例展示其強大功能。 一、…

謝志輝和他的《韻之隊詩集》:探尋生活與夢想交織的詩意世界

大家好&#xff0c;我是謝志輝&#xff0c;一個扎根在文字世界&#xff0c;默默耕耘的寫作者。寫作于我而言&#xff0c;早已不是簡單的愛好&#xff0c;而是生命中不可或缺的一部分。無數個寂靜的夜晚&#xff0c;當世界陷入沉睡&#xff0c;我獨自坐在書桌前&#xff0c;伴著…

Logo語言的死鎖

Logo語言的死鎖現象研究 引言 在計算機科學中&#xff0c;死鎖是一個重要的研究課題&#xff0c;尤其是在并發編程中。它指的是兩個或多個進程因爭奪資源而造成的一種永久等待狀態。在編程語言的設計與實現中&#xff0c;如何避免死鎖成為了優化系統性能和提高程序可靠性的關…

深入理解矩陣乘積的導數:以線性回歸損失函數為例

深入理解矩陣乘積的導數&#xff1a;以線性回歸損失函數為例 在機器學習和數據分析領域&#xff0c;矩陣微積分扮演著至關重要的角色。特別是當我們涉及到優化問題&#xff0c;如最小化損失函數時&#xff0c;對矩陣表達式求導變得必不可少。本文將通過一個具體的例子——線性…

real_time_camera_audio_display_with_animation

視頻錄制 import cv2 import pyaudio import wave import threading import os import tkinter as tk from PIL import Image, ImageTk # 視頻錄制設置 VIDEO_WIDTH = 640 VIDEO_HEIGHT = 480 FPS = 20.0 VIDEO_FILENAME = _video.mp4 AUDIO_FILENAME = _audio.wav OUTPUT_…

【Pandas】pandas DataFrame astype

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于將 DataFrame 中的數據轉換為指定的數據類型 pandas.DataFrame.astype pandas.DataFrame.astype 是一個方法&#xff0c;用于將 DataFrame 中的數據轉換為指定的數據類型。這個方法非常…

Johnson

理論 全源最短路算法 Floyd 算法&#xff0c;時間復雜度為 O(n)跑 n 次 Bellman - Ford 算法&#xff0c;時間復雜度是 O(nm)跑 n 次 Heap - Dijkstra 算法&#xff0c;時間復雜度是 O(nmlogm) 第 3 種算法被 Johnson 做了改造&#xff0c;可以求解帶負權邊的全源最短路。 J…

Exce格式化批處理工具詳解:高效處理,讓數據更干凈!

Exce格式化批處理工具詳解&#xff1a;高效處理&#xff0c;讓數據更干凈&#xff01; 1. 概述 在數據分析、報表整理、數據庫管理等工作中&#xff0c;數據清洗是不可或缺的一步。原始Excel數據常常存在格式不統一、空值、重復數據等問題&#xff0c;影響數據的準確性和可用…

(三十七)Dart 中使用 Pub 包管理系統與 HTTP 請求教程

Dart 中使用 Pub 包管理系統與 HTTP 請求教程 Pub 包管理系統簡介 Pub 是 Dart 和 Flutter 的包管理系統&#xff0c;用于管理項目的依賴。通過 Pub&#xff0c;開發者可以輕松地添加、更新和管理第三方庫。 使用 Pub 包管理系統 1. 找到需要的庫 訪問以下網址&#xff0c…

代碼隨想錄算法訓練營第三十五天 | 416.分割等和子集

416. 分割等和子集 題目鏈接&#xff1a;416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; 文章講解&#xff1a;代碼隨想錄 視頻講解&#xff1a;動態規劃之背包問題&#xff0c;這個包能裝滿嗎&#xff1f;| LeetCode&#xff1a;416.分割等和子集_嗶哩嗶哩_bilibi…

HTTP 教程 : 從 0 到 1 全面指南 教程【全文三萬字保姆級詳細講解】

目錄 HTTP 的請求-響應 HTTP 方法 HTTP 狀態碼 HTTP 版本 安全性 HTTP/HTTPS 簡介 HTTP HTTPS HTTP 工作原理 HTTPS 作用 HTTP 與 HTTPS 區別 HTTP 消息結構 客戶端請求消息 服務器響應消息 實例 HTTP 請求方法 各個版本定義的請求方法 HTTP/1.0 HTTP/1.1 …