91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中正則表達式的知識點有哪些

發布時間:2022-04-14 10:13:27 來源:億速云 閱讀:241 作者:iii 欄目:編程語言

這篇文章主要介紹了Python中正則表達式的知識點有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇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中正則表達式的知識點有哪些
注:“ .*?” 與“ .* ”的區別
.*?的意思就是匹配一個能滿足要求的最短字符串。
一句話總結如下。
①“.*”:貪婪模式,獲取最長的滿足條件的字符串。
②“.*? ”:非貪婪模式,獲取最短的能滿足條件的字符串。

1.2.6 小括號“()”

從一段字符串中“提取”出一部分的內容.
有如下一個字符串:
Python中正則表達式的知識點有哪些
可以看出,這里的密碼左邊有一個英文冒號,右邊有一個漢字“你”。當構造一個正則表達式:.*?你時,得到的結果將會是:
Python中正則表達式的知識點有哪些
然而,冒號和漢字“你”并不是密碼的一部分,如果只想要“12345abcde”,就需要使用括號:
Python中正則表達式的知識點有哪些
得到:
Python中正則表達式的知識點有哪些

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中正則表達式的知識點有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米泉市| 长武县| 沙坪坝区| 资中县| 罗平县| 团风县| 牡丹江市| 黄龙县| 绵阳市| 涞水县| 澄迈县| 德安县| 仪陇县| 泰兴市| 岳西县| 鱼台县| 洛川县| 奉节县| 敦煌市| 城固县| 汉中市| 中江县| 黔西县| 景德镇市| 衡南县| 长垣县| 武安市| 永济市| 易门县| 衢州市| 鄯善县| 义乌市| 彭阳县| 姜堰市| 从化市| 章丘市| 惠州市| 延安市| 灯塔市| 长乐市| 贺州市|