成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹Python中正則表達(dá)式及其常用匹配函數(shù)有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出城西免費(fèi)做網(wǎng)站回饋大家。

正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。

/簡(jiǎn)介/

Python 自1.5版本起增加了re 模塊,它提供 Perl風(fēng)格的正則表達(dá)式模式。re 模塊使得Python 語言擁有全部的正則表達(dá)式功能。

compile 函數(shù)根據(jù)一個(gè)模式字符串和可選的標(biāo)志參數(shù)生成一個(gè)正則表達(dá)式對(duì)象。該對(duì)象擁有一系列方法用于正則表達(dá)式匹配和替換。

re 模塊也提供了與這些方法功能完全一致的函數(shù),這些函數(shù)使用一個(gè)模式字符串做為它們的第一個(gè)參數(shù)。

/re.match函數(shù)/

re.match 嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none。語法如下所示:

re.match(pattern, string, flags=0)

“pattern”匹配的正則表達(dá)式“string”要匹配的字符串“flags”標(biāo)志位。

匹配成功re.match方法返回一個(gè)匹配的對(duì)象,否則返回None。

我們可以使用group(num)或 groups() 匹配對(duì)象函數(shù)來獲取匹配表達(dá)式。

group(num=0) 匹配的整個(gè)表達(dá)式的字符串,“group()”可以一次輸入多個(gè)組號(hào),在這種情況下它將返回一個(gè)包含那些組所對(duì)應(yīng)值的元組。

下圖是個(gè)實(shí)際例子:

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

輸出結(jié)果如下圖所示:

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

/檢索和替換/

Python 的re模塊提供了re.sub用于替換字符串中的匹配項(xiàng)。語法如下所示:

re.sub(pattern, repl, string, count=0, flags=0)

參數(shù):

pattern : 正則中的模式字符串。

repl : 替換的字符串,也可為一個(gè)函數(shù)。

string : 要被查找替換的原始字符串。

count : 模式匹配后替換的大次數(shù),默認(rèn) 0 表示替換所有的匹配。

flags : 編譯時(shí)用的匹配模式,數(shù)字形式。

前三個(gè)為必參數(shù),后兩個(gè)為可選參數(shù)。

下圖是個(gè)實(shí)際例子:

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

輸出結(jié)果如下圖所示:

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

/compile函數(shù)/

compile 函數(shù)用于編譯正則表達(dá)式,供match() 和 search() 這兩個(gè)函數(shù)使用。語法格式為:

re.compile(pattern[, flags])

參數(shù):

pattern : 一個(gè)字符串形式的正則表達(dá)式

flags 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數(shù)為:

re.I 忽略大小寫

re.L 表示特殊字符集 \w,\W, \b, \B, \s, \S 依賴于當(dāng)前環(huán)境

re.M 多行模式

re.S 即為' . '并且包括換行符在內(nèi)的任意字符(' . '不包括換行符)

re.U 表示特殊字符集 \w,\W, \b, \B, \d, \D, \s, \S 依賴于 Unicode 字符屬性數(shù)據(jù)庫(kù)

re.X 為了增加可讀性,忽略空格和'# '后面的注釋

/正則表達(dá)式對(duì)象/

re.RegexObject:re.compile() 返回RegexObject 對(duì)象。

re.MatchObject:group() 返回被 RE 匹配的字符串。

start() 返回匹配開始的位置

end() 返回匹配結(jié)束的位置

span() 返回一個(gè)元組包含匹配 (開始,結(jié)束) 的位置

/正則表達(dá)式修飾符 - 可選標(biāo)志/

正則表達(dá)式可以包含一些可選標(biāo)志修飾符來控制匹配的模式。修飾符被指定為一個(gè)可選的標(biāo)志。多個(gè)標(biāo)志可以通過按位 OR(|) 它們來指定。如 re.I| re.M 被設(shè)置成 I 和 M 標(biāo)志:

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

/正則表達(dá)式模式/

模式字符串使用特殊的語法來表示一個(gè)正則表達(dá)式:

字母和數(shù)字表示他們自身。一個(gè)正則表達(dá)式模式中的字母和數(shù)字匹配同樣的字符串。

多數(shù)字母和數(shù)字前加一個(gè)反斜杠時(shí)會(huì)擁有不同的含義。

標(biāo)點(diǎn)符號(hào)只有被轉(zhuǎn)義時(shí)才匹配自身,否則它們表示特殊的含義。

反斜杠本身需要使用反斜杠進(jìn)行轉(zhuǎn)義。

由于正則表達(dá)式通常都包含反斜杠,所以你最好使用原始字符串來表示它們。模式元素(如 r'\t',等價(jià)于 \\t )匹配相應(yīng)的特殊字符。

下表列出了正則表達(dá)式模式語法中的特殊元素。如果你使用模式的同時(shí)提供了可選的標(biāo)志參數(shù),某些模式元素的含義會(huì)改變。

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

正則表達(dá)式實(shí)例

字符匹配

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

字符類

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

/實(shí)際應(yīng)用/

以貓眼電影為例。我們需要獲取(電影的名字作者,上映時(shí)間)等等都可以用正則表達(dá)式來解析。

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

分析一下,利用正則表達(dá)式提取。

Python中正則表達(dá)式及其常用匹配函數(shù)有哪些

可以看到我們要的名字在一個(gè)a里面,而他們被一個(gè)div包裹著。

我們把div想象成一個(gè)盒子,可以看到div里面還有一個(gè)div 我們可以先找他上面一層的div是一個(gè)表單<dl class=”movie_item_info”>再找到它的上一層的盒子div<div class= ”board-iten-main” >一般來說我們找到前兩層就可以找到我們要的結(jié)果。如果不對(duì)就再找?guī)讓印?/p>

分析完再實(shí)際操作一下:

pattern = re.compile('<div>.*?title="(.*?)".*?class="star">(.*?)</p>.*?releasetime">(.*?)</p>',re.S)

(.*?)表示我們要的內(nèi)容<p class=”star”>(.*?)</p>里面的主演也是我們要的這樣我們就可以得到我們想要得多個(gè)數(shù)據(jù)。

/小結(jié)/

1. 正則表達(dá)式適合一些需要獲取多個(gè)數(shù)據(jù)的場(chǎng)景。它能夠以更快捷的方式去獲取到我們想要的數(shù)據(jù)。

2. 本Python教程主要介紹了正則表達(dá)式,及其基本用法,具體每個(gè)字符的用法,可以參考前言里邊的正則表達(dá)式系列文章,希望能夠幫助大家更好的了解正則表達(dá)式的用法。

以上是“Python中正則表達(dá)式及其常用匹配函數(shù)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

當(dāng)前文章:Python中正則表達(dá)式及其常用匹配函數(shù)有哪些-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://jinyejixie.com/article24/diegce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)網(wǎng)站排名、定制網(wǎng)站網(wǎng)站內(nèi)鏈、全網(wǎng)營(yíng)銷推廣、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
淳安县| 阳曲县| 漠河县| 衡东县| 阳江市| 汉沽区| 虎林市| 仁化县| 格尔木市| 临沂市| 涪陵区| 深州市| 富裕县| 菏泽市| 江安县| 叶城县| 犍为县| 恭城| 石阡县| 翁源县| 石阡县| 禹州市| 菏泽市| 桓台县| 晋城| 棋牌| 百色市| 萝北县| 中山市| 丰台区| 昂仁县| 农安县| 公安县| 日喀则市| 乌拉特前旗| 昌宁县| 如东县| 姜堰市| 辰溪县| 德钦县| 阿图什市|