目錄
#1.1正規表示式
1.2正規表示式的基本符號
#1.2.1 點號「 .」
1.2.2 星號「 * 」
1.2.3 點號星號「 .* ”
1.2.4 問號「 ? 」
1.2.5 點號星號問號「 .*?」(最常用)
1.2.7 反斜線 「 \ 」
1.2.8 數字 「 \d」
1.3 使用正規表示式
1.3.1 findall 方法
1.3.2 search 方法
1.3.3 compile 方法
1.4 正規表示式的擷取技巧
1.4.1 先抓大後再抓小:二次擷取
1.4.2 括號裡括號外
首頁 後端開發 Python教學 歸納整理Python正規表示式知識點

歸納整理Python正規表示式知識點

Apr 13, 2022 pm 07:09 PM
python

本篇文章為大家帶來了關於python的相關知識,其中主要介紹了關於正規表示式的相關問題,正規表示式(Regular Expression)是一段字串,它可以表示一段有規律的訊息,下面我們一起來看一下,希望對大家有幫助。

歸納整理Python正規表示式知識點

推薦學習:python影片教學

#1.1正規表示式

正規則表達式(Regular Expression)是一段字串,它可以表示一段有規律的訊息。 Python自備一個正規表示式模組,透過這個模組可以尋找、擷取、取代一段有規律的資訊。在一萬人裡面找一個人很困難,但是在一萬人裡面找一個非常「有特色」的人卻很容易。假設有一個人,皮膚是綠色的,身高三米,那麼即使這個人混在一萬人中,其他人也能一眼找到他。這個「尋找」的過程,在正規表示式中叫作「匹配」。在程式開發中,要讓電腦程式從一大段文字中找到所需的內容,就可以使用正規表示式來實現。使用正規表示式有下列步驟。
(1)尋找規律。
(2)使用正規符號表示規律。
(3)提取資訊。

1.2正規表示式的基本符號

#1.2.1 點號「 .」

#一個點號可以取代除了換行符號以外的任何一個字元,包括但不限於英文字母、數字、漢字、英文標點符號和中文標點符號。

1.2.2 星號「 * 」

#一個星號可以表示它前面的一個子表達式普通字元、另一個或幾個正規表示式符號)0次到無限次。

歸納整理Python正規表示式知識點
如上皆可:(星號表示的是前面的一個表達式)
歸納整理Python正規表示式知識點

1.2.3 點號星號「 .* ”

點號表示任意非換行符的字符,星號表示匹配它前面的字符0次或任意多次。所以“.*”表示匹配一串任意長度的字串任意次。
歸納整理Python正規表示式知識點
如上皆可:
它表示在「如」和「哈」中間出現「任意多個除了換行符號以外的任意字元」。
歸納整理Python正規表示式知識點

1.2.4 問號「 ? 」

問號表示它前面的子表達式0次或1次。請注意,這裡的問號是英文問號歸納整理Python正規表示式知識點
如上均可以:歸納整理Python正規表示式知識點

1.2.5 點號星號問號「 .*?」(最常用)


歸納整理Python正規表示式知識點

歸納整理Python正規表示式知識點






歸納整理Python正規表示式知識點##結合後用法:

歸納整理Python正規表示式知識點 如上皆可:

歸納整理Python正規表示式知識點 註:「 .*?」 與「 .* 」的區別
. *?的意思就是要匹配一個能滿足要求的最短字串。
一句話總結如下。 歸納整理Python正規表示式知識點 ①「.*」:貪婪模式,取得最長的滿足條件的字串。

②「.*? 」:非貪婪模式,取得最短的能滿足條件的字串。 ######1.2.6 小括號「()」######從一段字串中「提取」出一部分的內容.### 有以下一個字串:####### ## 可以看出,這裡的密碼左邊有一個英文冒號,右邊有一個漢字「你」。當構造一個正規表示式:.*?你時,得到的結果將會是:######### 然而,冒號和漢字“你”並不是密碼的一部分,如果只想要“12345abcde”,就需要使用括號:#### ##### 得到:#########

1.2.7 反斜線 「 \ 」

在正規表示式裡面,很多符號都是有特殊意義的,例如問號、星號、大括號、中括號和小括號。反斜線需要和其他的字元配合使用來把特殊符號變成普通符號,把普通符號變成特殊符號。
歸納整理Python正規表示式知識點

1.2.8 數字 「 \d」

正規表示式裡面使用「\d」來表示一位數字。
如果要提取兩個數字,可以使用\d\d;如果要提取3個數字,可以使用\d\d\d。但是如果不知道這個數字有多少位怎麼辦呢?就需要用*號來表示一個任意位數的數字。

歸納整理Python正規表示式知識點
全部都可以使用下面這個正規表示式來表示:
歸納整理Python正規表示式知識點

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個元素為密碼。
歸納整理Python正規表示式知識點

函數原型中有一個flags參數。這個參數是可以省略的。當不省略的時候,具有一些輔助功能,例如忽略大小寫、忽略換行符等。
這裡以忽略換行符號為例來進行說明要忽略換行符,就需要使用到「re.S」這個flag。 歸納整理Python正規表示式知識點
雖然說配對到的結果中出現了「\n」這個符號,不過總比什麼都得不到強。內容裡面的換行符號在後製清洗資料的時候把它換掉即可。

1.3.2 search 方法

search()的用法和findall()的用法一樣,但是search()只會傳回第1個符合要求的字串。一旦找到符合要求的內容,它就會停止尋找。對於從超級​​大的文字裡面只找第1個資料特別有用,可以大幅提升程式的運作效率。

search()的函數原型為:歸納整理Python正規表示式知識點
對於結果,如果匹配成功,則是一個正規表示式的物件;如果沒有匹配到任何數據,就是None。

如果需要得到符合的結果,則需要透過.group()這個方法來取得裡面的值。
歸納整理Python正規表示式知識點
只有在.group()裡面的參數為1的時候,才會把正規表示式裡面的括號中的結果印出來。

.group()的參數最大不能超過正規表示式裡面括號的個數。參數為1表示讀取第1個括號中的內容,參數為2表示讀取第2個括號中的內容,以此類推。
(注意圖中的不是findall)
歸納整理Python正規表示式知識點

1.3.3 compile 方法

re.findall()自帶re.compile()的功能,所以沒有必要使用re.compile()。

1.4 正規表示式的擷取技巧

1.4.1 先抓大後再抓小:二次擷取

歸納整理Python正規表示式知識點

1.4.2 括號裡括號外

括號內可以有其他字元。
具體影響見下圖。
歸納整理Python正規表示式知識點
如果括號裡面有其他普通字符,那麼這些普通字符就會出現在取得的結果裡面。

推薦學習:python影片教學

#

以上是歸納整理Python正規表示式知識點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

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

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

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

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

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

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

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

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

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

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

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

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

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

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

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

See all articles