歸納整理Python正規表示式知識點
本篇文章為大家帶來了關於python的相關知識,其中主要介紹了關於正規表示式的相關問題,正規表示式(Regular Expression)是一段字串,它可以表示一段有規律的訊息,下面我們一起來看一下,希望對大家有幫助。
推薦學習:python影片教學
#1.1正規表示式
正規則表達式(Regular Expression)是一段字串,它可以表示一段有規律的訊息。 Python自備一個正規表示式模組,透過這個模組可以尋找、擷取、取代一段有規律的資訊。在一萬人裡面找一個人很困難,但是在一萬人裡面找一個非常「有特色」的人卻很容易。假設有一個人,皮膚是綠色的,身高三米,那麼即使這個人混在一萬人中,其他人也能一眼找到他。這個「尋找」的過程,在正規表示式中叫作「匹配」。在程式開發中,要讓電腦程式從一大段文字中找到所需的內容,就可以使用正規表示式來實現。使用正規表示式有下列步驟。
(1)尋找規律。
(2)使用正規符號表示規律。
(3)提取資訊。
1.2正規表示式的基本符號
#1.2.1 點號「 .」
#一個點號可以取代除了換行符號以外的任何一個字元,包括但不限於英文字母、數字、漢字、英文標點符號和中文標點符號。
1.2.2 星號「 * 」
#一個星號可以表示它前面的一個子表達式 (普通字元、另一個或幾個正規表示式符號)0次到無限次。
如上皆可:(星號表示的是前面的一個表達式)
1.2.3 點號星號「 .* ”
點號表示任意非換行符的字符,星號表示匹配它前面的字符0次或任意多次。所以“.*”表示匹配一串任意長度的字串任意次。
如上皆可:
它表示在「如」和「哈」中間出現「任意多個除了換行符號以外的任意字元」。
1.2.4 問號「 ? 」
問號表示它前面的子表達式0次或1次。請注意,這裡的問號是英文問號
如上均可以:
1.2.5 點號星號問號「 .*?」(最常用)
##結合後用法:
如上皆可:
註:「 .*?」 與「 .* 」的區別
. *?的意思就是要匹配一個能滿足要求的最短字串。
一句話總結如下。 ①「.*」:貪婪模式,取得最長的滿足條件的字串。
1.2.7 反斜線 「 \ 」
在正規表示式裡面,很多符號都是有特殊意義的,例如問號、星號、大括號、中括號和小括號。反斜線需要和其他的字元配合使用來把特殊符號變成普通符號,把普通符號變成特殊符號。
1.2.8 數字 「 \d」
正規表示式裡面使用「\d」來表示一位數字。
如果要提取兩個數字,可以使用\d\d;如果要提取3個數字,可以使用\d\d\d。但是如果不知道這個數字有多少位怎麼辦呢?就需要用*號來表示一個任意位數的數字。
全部都可以使用下面這個正規表示式來表示:
1.3 使用正規表示式
Python的正規表示式模組名字為“re”,也就是“regular expression”的縮寫。在Python中需要先導入這個模組再使用。導入的語句為:
import re
1.3.1 findall 方法
Python的正規表示式模組包含一個findall方法,它能夠以列表#的形式傳回所有滿足要求的字串。
findall的函數原型為:
re.findall(pattern,string,flags=0)
pattern表示正規表示式,string表示原來的字串,flags表示一些特殊功能的標誌。 findall的結果是一個列表,包含了所有的匹配到的結果。如果沒有符合到結果,就會傳回空列表。
當需要提取某些內容的時候,使用小括號將這些內容括起來,這樣才不會得到不相干的資訊。如果包含多個「(.*? )」怎麼回傳呢?如圖3-2所示,回傳的仍然是一個列表,但是列表裡面的元素變成了元組,元組裡面的第1個元素是帳號,第2個元素為密碼。
函數原型中有一個flags參數。這個參數是可以省略的。當不省略的時候,具有一些輔助功能,例如忽略大小寫、忽略換行符等。
這裡以忽略換行符號為例來進行說明要忽略換行符,就需要使用到「re.S」這個flag。
雖然說配對到的結果中出現了「\n」這個符號,不過總比什麼都得不到強。內容裡面的換行符號在後製清洗資料的時候把它換掉即可。
1.3.2 search 方法
search()的用法和findall()的用法一樣,但是search()只會傳回第1個符合要求的字串。一旦找到符合要求的內容,它就會停止尋找。對於從超級大的文字裡面只找第1個資料特別有用,可以大幅提升程式的運作效率。
search()的函數原型為:
對於結果,如果匹配成功,則是一個正規表示式的物件;如果沒有匹配到任何數據,就是None。
如果需要得到符合的結果,則需要透過.group()這個方法來取得裡面的值。
只有在.group()裡面的參數為1的時候,才會把正規表示式裡面的括號中的結果印出來。
.group()的參數最大不能超過正規表示式裡面括號的個數。參數為1表示讀取第1個括號中的內容,參數為2表示讀取第2個括號中的內容,以此類推。
(注意圖中的不是findall)
1.3.3 compile 方法
re.findall()自帶re.compile()的功能,所以沒有必要使用re.compile()。
1.4 正規表示式的擷取技巧
1.4.1 先抓大後再抓小:二次擷取
1.4.2 括號裡括號外
括號內可以有其他字元。
具體影響見下圖。
如果括號裡面有其他普通字符,那麼這些普通字符就會出現在取得的結果裡面。
推薦學習:python影片教學
#以上是歸納整理Python正規表示式知識點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
