這篇文章帶給大家的內容是關於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]])###其中,string是待匹配的字串,pos 和endpos 是可選參數,指定字串的###起始###和###終點# ##位置,預設值分別是0 和###len### (字串長度)。因此,當你不指定 pos 和 endpos 時,match 方法預設符合字串的頭部。 ######當匹配成功時,傳回一個 Match 對象,如果沒有匹配上,則傳回 None。 ###
>>> 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> >>> >>> m.group() # group()方法获取匹配成功的字符 '1' >>> m = pattern.match("onetwo3four56",6,12) # 指定match从数字3开始查找,第一个是数字3,匹配成功 >>> print(m) <_sre.sre_match> >>> m.group() '3'</_sre.sre_match></_sre.sre_match>######
以上是python中re模組與正規表示式的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

在兩小時內高效學習Python的方法包括:1.回顧基礎知識,確保熟悉Python的安裝和基本語法;2.理解Python的核心概念,如變量、列表、函數等;3.通過使用示例掌握基本和高級用法;4.學習常見錯誤與調試技巧;5.應用性能優化與最佳實踐,如使用列表推導式和遵循PEP8風格指南。

Python適合初學者和數據科學,C 適用於系統編程和遊戲開發。 1.Python簡潔易用,適用於數據科學和Web開發。 2.C 提供高性能和控制力,適用於遊戲開發和系統編程。選擇應基於項目需求和個人興趣。

Python更適合數據科學和快速開發,C 更適合高性能和系統編程。 1.Python語法簡潔,易於學習,適用於數據處理和科學計算。 2.C 語法複雜,但性能優越,常用於遊戲開發和系統編程。

每天投入兩小時學習Python是可行的。 1.學習新知識:用一小時學習新概念,如列表和字典。 2.實踐和練習:用一小時進行編程練習,如編寫小程序。通過合理規劃和堅持不懈,你可以在短時間內掌握Python的核心概念。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

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