真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中re函數(shù)庫(kù) re庫(kù) python

Python 標(biāo)準(zhǔn)庫(kù)模塊 - re

re模塊被稱為正則表達(dá)式,其作用為,創(chuàng)建一個(gè)“規(guī)則表達(dá)式”,用于驗(yàn)證和查找符合規(guī)則的文本,廣泛用于各種搜索引擎、賬戶密碼的驗(yàn)證等。

創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元陸良做網(wǎng)站,已為上家服務(wù),為陸良各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

預(yù)定義字符:

\d:匹配所有的十進(jìn)制數(shù)字0-9

\D:匹配所有的非數(shù)字,包含下劃線

\s:匹配所有空白字符(空格、TAB等)

\S:匹配所有非空白字符,包含下劃線

\w:匹配所有字母、漢字、數(shù)字a-z A-Z 0-9

\W:匹配所有非字母、漢字、數(shù)字,包含下劃線

特殊字符:

$:匹配一行的結(jié)尾(必須放在正則表達(dá)式最后面)

^:匹配一行的開頭(必須放在正則表達(dá)式最前面)

*:前面的字符可以出現(xiàn)0次或多次(0~無(wú)限)

+:前面的字符可以出現(xiàn)1次或多次(1~無(wú)限)

?:變"貪婪模式"為"勉強(qiáng)模式",前面的字符可以出現(xiàn)0次或1次

.:匹配除了換行符"\n"之外的任意單個(gè)字符

|:兩項(xiàng)都進(jìn)行匹配

[ ]:代表一個(gè)集合,有如下三種情況

[abc]:能匹配其中的單個(gè)字符

[a-z0-9]:能匹配指定范圍的字符,可取反(在最前面加入^)

[2-9] [1-3]:能夠做組合匹配

{ }:用于標(biāo)記前面的字符出現(xiàn)的頻率,有如下情況:

{n,m}:代表前面字符最少出現(xiàn)n次,最多出現(xiàn)m次

{n,}:代表前面字符最少出現(xiàn)n次,最多不受限制

{,m}:代表前面字符最多出現(xiàn)n次,最少不受

{n}:前面的字符必須出現(xiàn)n次

python如何安裝re庫(kù)

re庫(kù)是Python關(guān)于正則表達(dá)式的一個(gè)內(nèi)置模塊,使用時(shí)無(wú)需下載,直接import即可。我們首先來(lái)看看re.py自己頭部的注釋是如何描述自己的:

這個(gè)模塊提供與Perl語(yǔ)言中類似的正則表達(dá)式匹配操作,支持bytes和unicode兩種格式的字符串,處理的字符串可以包含空字符以及超出ASCII碼范圍的字符(比如中文字符)。

正則表達(dá)式中既有'A'、'a'這種就代表自身的一般字符,又有一些具有特定含義的特殊字符,如|、(等。特殊字符既可以作為一個(gè)單純的值表示它自身,也可以影響它周邊1的正則表達(dá)式的解釋。

re庫(kù)中還包含一些特殊的字符序列,由\和一個(gè)字符組成的特殊序列在下表列出,如果\之后的字符不在下列表格中,正則表達(dá)式將會(huì)匹配字符本身,如\c匹配的就是字符c本身。我們發(fā)現(xiàn)如果 \小寫字母 代表了某一含義,那么對(duì)應(yīng)的 \大寫字母 常常代表它的補(bǔ)集。

re庫(kù)的用法介紹

re庫(kù)是python的標(biāo)準(zhǔn)庫(kù)

re庫(kù)采用raw string類型表示正則表達(dá)式,表示為:r'test'

原生字符串(raw string)是不包含轉(zhuǎn)義符的字符串

例子:

爬取好房通的網(wǎng)站 優(yōu)優(yōu)好房 的房源時(shí)用到了re庫(kù)解析文本,

raw string:

r'[1-9]\d{5}'

r'\d{3}-\d{8}|\d{4}-\d{7}'

string:

'[1-9]\\d{5}'

'\\d{3}-\\d{8}|\\d{4}-\\d{7}'

Re庫(kù)主要功能函數(shù)

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

pattern:正則表達(dá)式的字符串或原生字符串表示

string:待匹配字符串

flags:正則表達(dá)式使用時(shí)的控制標(biāo)記

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

因?yàn)閙atch為從開始位置開始匹配,使用時(shí)要加if進(jìn)行判別返回結(jié)果是否為空,否則會(huì)報(bào)錯(cuò)

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

re.split(pattern,string,maxsplit=0,flags=0)

maxsplit為最大分割數(shù),剩余部分作為最后一個(gè)元素輸出

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

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

repl是用來(lái)替換的字符串,count為替換次數(shù)

Re庫(kù)的另一種等價(jià)用法

Re庫(kù)的函數(shù)式用法為一次性操作,還有一種為面向?qū)ο笥梅?可在編譯后多次操作

1regex?=?re.compile(pattern,flags=0)

通過(guò)compile生成的regex對(duì)象才能被叫做正則表達(dá)式

Re庫(kù)的match對(duì)象

Match對(duì)象的屬性

Match對(duì)象的方法

實(shí)例

Re庫(kù)的貪婪匹配和最小匹配

Re庫(kù)默認(rèn)采取貪婪匹配,即輸出匹配最長(zhǎng)的子串

re庫(kù)是python的標(biāo)準(zhǔn)庫(kù)

re庫(kù)采用raw string類型表示正則表達(dá)式,表示為:r'test'

原生字符串(raw string)是不包含轉(zhuǎn)義符的字符串

例子:

爬取好房通的網(wǎng)站 優(yōu)優(yōu)好房 的房源時(shí)用到了re庫(kù)解析文本,

raw string:

r'[1-9]\d{5}'

r'\d{3}-\d{8}|\d{4}-\d{7}'

string:

'[1-9]\\d{5}'

'\\d{3}-\\d{8}|\\d{4}-\\d{7}'

Re庫(kù)主要功能函數(shù)

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

pattern:正則表達(dá)式的字符串或原生字符串表示

string:待匹配字符串

flags:正則表達(dá)式使用時(shí)的控制標(biāo)記

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

因?yàn)閙atch為從開始位置開始匹配,使用時(shí)要加if進(jìn)行判別返回結(jié)果是否為空,否則會(huì)報(bào)錯(cuò)

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

re.split(pattern,string,maxsplit=0,flags=0)

maxsplit為最大分割數(shù),剩余部分作為最后一個(gè)元素輸出

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

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

repl是用來(lái)替換的字符串,count為替換次數(shù)

Re庫(kù)的另一種等價(jià)用法

Re庫(kù)的函數(shù)式用法為一次性操作,還有一種為面向?qū)ο笥梅?可在編譯后多次操作

1regex?=?re.compile(pattern,flags=0)

通過(guò)compile生成的regex對(duì)象才能被叫做正則表達(dá)式

Re庫(kù)的match對(duì)象

Match對(duì)象的屬性

Match對(duì)象的方法

實(shí)例

Re庫(kù)的貪婪匹配和最小匹配

Re庫(kù)默認(rèn)采取貪婪匹配,即輸出匹配最長(zhǎng)的子串

python中re庫(kù)的常見用法

. 匹配除換行符外的任意字符

\d 匹配數(shù)字

\D 匹配非數(shù)字

\w 匹配數(shù)字字母下劃線,支持中文

\W 小寫w的反集

[abc] 匹配abc中任意一個(gè)

[a-f] 匹配字母a到f中的任意一個(gè)

x|y 匹配x或者y

^ 匹配字符串的開頭

$ 匹配字符串的結(jié)尾

{3,5} 匹配次數(shù),最少3個(gè),最多5個(gè)

{3,} 至少匹配3次

* 匹配前一個(gè)字符,0次或多次

+ 匹配前一個(gè)字符,1次或多次

? 當(dāng)前面不是數(shù)量表達(dá)式時(shí),代表匹配0次或1次

舉個(gè)栗子:

findall()函數(shù)的作用是匹配所有符合條件字符串,并以列表形式返回

由于.是匹配除換行符外的所有字符,{3,5} 匹配次數(shù),最少3個(gè),最多5個(gè),在默認(rèn)的貪婪模式下會(huì)匹配最多的字符,所以在列表中,字母a開頭的字符串后面都跟了5個(gè)字符。

可以看到在非貪婪模式下,列表中的每一項(xiàng)都匹配最少的字符數(shù)。

從前往后,匹配到符合條件的最短的每一個(gè)字符串

邊界字符:

^ 限定開頭

$ 限定結(jié)尾

匹配分組:

() 提取出來(lái)的只有括號(hào)里匹配到的部分

上文中已經(jīng)用到這個(gè)方法了,返回匹配到的字符串列表,如果沒(méi)有匹配到的內(nèi)容,則返回空列表。

flags參數(shù)是可以省略的,不省略時(shí)代表具有其他特殊的功能,如忽略大小寫,忽略換行符等,re.S代表匹配時(shí)忽略換行符

re.search()和re.findall()的參數(shù)是一樣的,只是返回結(jié)果不同,如果匹配到了,就返回該結(jié)果的正則表達(dá)式對(duì)象;如果沒(méi)有匹配到,則返回None

使用re.search()返回匹配到的第一個(gè)字符串的正則表達(dá)式對(duì)象,找到了就會(huì)停止匹配。因此這個(gè)函數(shù)比較適合在一個(gè)大文本中找第一個(gè)出現(xiàn)的字符串。

若想讓這個(gè)字符串展示出來(lái),還需要借助group()函數(shù)。

舉個(gè)栗子:

這個(gè)函數(shù)的作用是將正則表達(dá)式編譯為一個(gè)正則表達(dá)式對(duì)象,如果要多次使用這個(gè)正則表達(dá)式的話,可以先編譯,然后復(fù)用,使程序更高效一些,對(duì)這個(gè)對(duì)象繼續(xù)使用.match(string)就可以顯示匹配到的正則表達(dá)式對(duì)象,后續(xù)如果想要獲取具體內(nèi)容的話,和上面是一眼國(guó)的,直接使用group(0)就可以啦。

如果不考慮復(fù)用的話,和re.mach(pattern, string)的效果是一樣的。

從運(yùn)行結(jié)果也可以看出,re.match()和re.search()的區(qū)別,雖然二者都會(huì)返回匹配到的正則表達(dá)式對(duì)象,但是re.match()是從字符串的最開始位置開始匹配的,如果最開始的字符不匹配則會(huì)直接返回None;而re.search()則會(huì)一直往后找,直到找到第一個(gè)符合條件的字符串。

re.sub()函數(shù)用于替換字符串中的匹配項(xiàng)

舉個(gè)栗子:

將所有數(shù)字替換為了一個(gè)空格。


文章名稱:python中re函數(shù)庫(kù) re庫(kù) python
網(wǎng)站鏈接:http://weahome.cn/article/doihoph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部