python中re模組與正規表示式的介紹(附程式碼)
這篇文章帶給大家的內容是關於python中re模組與正規表示式的介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
正規表示式(英文:Regular Expression,在程式碼中常簡稱為regex、regexp或RE),又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法,是計算機科學的一個概念。正規表示式使用單一字串來描述、匹配一系列符合某個句法規則的字串。在許多文字編輯器裡,正規表示式通常被用來檢索、取代那些符合某個模式的文字。
正規表示式規則,單字元符合
字元 | 功能 | 正規表示式範例 | 符合符合範例 |
---|---|---|---|
. | 比符合任一個字元(除了n) | b.b | bab,b2b |
[ ] | 符合來自[]中字元集的任一個字元 | i [abCde]m | i am |
\d | 符合任何十進位數字,與[0-9]一致 | w\dcschool | #w3cschool |
\D | 符合非數字,即不是數字 | mou\Dh | mouth |
#\s | 符合任何空格字符,與[\n\t\r\v\f]相同 | i\slike | i like |
\S | 符合任何非空白字符,與\s相反 | n\Se | noe,n3e |
\w | 匹配任何字母數字字符,與[A-Za-z0-9_]相同 | [A-Za-z]w | |
\W | 符合非單字字元 | [0-9]\W[A-Z] | 3 A |
表示數量符合
字元 | ##功能正規表示式範例 | 符合符合的範例 | ||
---|---|---|---|---|
#符合0次或多次前面出現的正規表示式,即可有可無 | a* | #aaa | ||
符合前一個字元出現1次或無限次,即至少有一次 | a | ##aaa | ||
? | 符合前一個字元出現1次或0次,要嘛有一次,要嘛沒有 | a? | a或者b | |
{m} | #前一個字元出現m次 | [0-9]{5 } | 12345 | |
#{m.} | 符合前一個字元至少出現m次 | a{5.} | aaaaa | |
#{m,n} | 匹配前一個字元出現從m到n次 | a{2,6} | aaa |
表示邊界匹配
字元 | 功能 | #正規表示式範例 |
---|---|---|
^ | 符合字串起始部分 | ^Dear |
#$ | 符合字串終止部分 | fi$ |
b | 符合任何單字的邊界 | \bThe\b |
符合非單字邊界 | .*\Bver\ |
功能 | ||
---|---|---|
##已匹配左右任一個表達式 | ||
#將括號中字元作為一個分組 | ||
引用分組num符合的字串 | ||
分組起別名 | ||
#引用別名為name分組匹配到的字串 |
在python中,可以使用內建的re模組來使用正規表示式
re模組常見的函數與方法
說明 | |
---|---|
使用任何可選的標記來編譯正規表示式的模式,然後傳回一個正規表示式物件 |
re模組函數與正規表示式物件方法 | 說明 |
---|---|
#match(pattern, string,flags=0) | 嘗試使用帶有可選的標記的正規表示式的模式來匹配字串。如果符合成功,就傳回符合物件; 如果失敗,就傳回None |
search(pattern,string,flags=0) | 使用可選標記搜尋字串中第一次出現的正規表示式模式。如果符合成功,則傳回符合物件; 如果失敗,則傳回None |
findall(pattern,string,[,flags]) | 尋找字串中所有出現的正規表示式,並傳回一個列表 |
split(pattern,string,max=0) | 根據正規表示式的模式分隔符,spilt函數將字符串分割為列表,然後返回成功匹配的列表,分割最多操作max次(預設分割所有匹配成功的位置) |
#sub(pattern,repl,string,count=0) | 使用repl替換所有正規表示式的模式在字串中出現的位置,除非定義count,否則就將替換所有出現的位置 |
常用的符合物件方法 | 說明 |
---|---|
group(num=0) | |
groups(default=None) | |
---|---|
span() | |
說明 | |
re .I | 使匹配對大小寫不敏感(忽略大小寫) |
#re.S | .(點號)匹配除了n之外的所有字符,re.S標記表示.(點號)能夠匹配全部字符 |
#re.M
- #多行匹配,影響^和$
re.U
根據Unicode字元集解析字元。影響\w,\W,\b和\Bre.X
該標誌透過給予你更靈活的格式以便你講正規表示式寫得更易於理解
-
#使用re模組一般的使用方法
compile()
透過正規表示式物件提供的一系列方法(如:match()
)對文字進行匹配查找,獲得匹配結果,一個Match物件;
最後使用
物件提供的屬性和方法(例如:
group ())獲得信息,根據需要進行其他的操作。 re模組使用範例
匯入模組
#
import re
compile()
函數
compile 函數用來編譯正規表示式,產生一個Pattern 對象,它的一般使用形式如下:import re # 将正则表达式编译成pattern对象 pattern = re.compile(r'\d+')
編譯成正規表示式物件後,就可以使用上面所說的正則表達式物件方法了。
###match()###方法######match 方法用於尋找字串的頭部(也可以指定起始位置),它是###一次###匹配,只要找到了一個匹配的結果就返回,而不是查找所有匹配的結果。它的一般使用形式如下:###match(string[, pos[, endpos]])
>>> import re >>> >>> pattern = re.compile(r'\d+') # 正则表达式表示匹配至少一个数字 >>> >>> m = pattern.match("one2three4") # match默认从开头开始匹配,开头是字母o,所以没有匹配成功 >>> print(m) # 匹配失败返回None None >>> >>> m = pattern.match("1two3four") # 开头字符是数字,匹配成功 >>> print(m) <_sre.SRE_Match object; span=(0, 1), match='1'> >>> >>> m.group() # group()方法获取匹配成功的字符 '1' >>> m = pattern.match("onetwo3four56",6,12) # 指定match从数字3开始查找,第一个是数字3,匹配成功 >>> print(m) <_sre.SRE_Match object; span=(6, 7), match='3'> >>> m.group() '3'
以上是python中re模組與正規表示式的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

在CentOS系統上啟用PyTorchGPU加速,需要安裝CUDA、cuDNN以及PyTorch的GPU版本。以下步驟將引導您完成這一過程:CUDA和cuDNN安裝確定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA顯卡支持的CUDA版本。例如,您的MX450顯卡可能支持CUDA11.1或更高版本。下載並安裝CUDAToolkit:訪問NVIDIACUDAToolkit官網,根據您顯卡支持的最高CUDA版本下載並安裝相應的版本。安裝cuDNN庫:前

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

MinIO對象存儲:CentOS系統下的高性能部署MinIO是一款基於Go語言開發的高性能、分佈式對象存儲系統,與AmazonS3兼容。它支持多種客戶端語言,包括Java、Python、JavaScript和Go。本文將簡要介紹MinIO在CentOS系統上的安裝和兼容性。 CentOS版本兼容性MinIO已在多個CentOS版本上得到驗證,包括但不限於:CentOS7.9:提供完整的安裝指南,涵蓋集群配置、環境準備、配置文件設置、磁盤分區以及MinI

在CentOS系統上進行PyTorch分佈式訓練,需要按照以下步驟操作:PyTorch安裝:前提是CentOS系統已安裝Python和pip。根據您的CUDA版本,從PyTorch官網獲取合適的安裝命令。對於僅需CPU的訓練,可以使用以下命令:pipinstalltorchtorchvisiontorchaudio如需GPU支持,請確保已安裝對應版本的CUDA和cuDNN,並使用相應的PyTorch版本進行安裝。分佈式環境配置:分佈式訓練通常需要多台機器或單機多GPU。所

在CentOS系統上安裝PyTorch,需要仔細選擇合適的版本,並考慮以下幾個關鍵因素:一、系統環境兼容性:操作系統:建議使用CentOS7或更高版本。 CUDA與cuDNN:PyTorch版本與CUDA版本密切相關。例如,PyTorch1.9.0需要CUDA11.1,而PyTorch2.0.1則需要CUDA11.3。 cuDNN版本也必須與CUDA版本匹配。選擇PyTorch版本前,務必確認已安裝兼容的CUDA和cuDNN版本。 Python版本:PyTorch官方支

在CentOS上更新PyTorch到最新版本,可以按照以下步驟進行:方法一:使用pip升級pip:首先確保你的pip是最新版本,因為舊版本的pip可能無法正確安裝最新版本的PyTorch。 pipinstall--upgradepip卸載舊版本的PyTorch(如果已安裝):pipuninstalltorchtorchvisiontorchaudio安裝最新
