国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


站長(zhǎng)在線Python精講:Python中正則表達(dá)式的語(yǔ)法詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中正則表達(dá)式的語(yǔ)法詳解》。本知識(shí)點(diǎn)主要內(nèi)容有9點(diǎn):行定位符、元字符、限定符、字符集、排除字符、選擇字符、轉(zhuǎn)義字符、分組、在Python中使用正則表達(dá)式語(yǔ)法。

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)python知識(shí),本文學(xué)習(xí)的是《Python正則表達(dá)式的語(yǔ)法詳解》。本知識(shí)點(diǎn)主要內(nèi)容有9點(diǎn):行定位符、元字符、限定符、字符集、排除字符、選擇字符、轉(zhuǎn)義字符、分組、在Python中使用正則表達(dá)式語(yǔ)法。


關(guān)于Python中的正則表達(dá)式,準(zhǔn)備分兩個(gè)知識(shí)點(diǎn)講完,今天來(lái)講解正則表達(dá)式的語(yǔ)法。

正則表達(dá)式的概念:正則表達(dá)式(regular expression,簡(jiǎn)稱regex或者RE),也稱為歸則表達(dá)式。通常用來(lái)檢索、替換符合某些規(guī)則的文本。正則表達(dá)式就是記錄文本規(guī)則的代碼。

1、行定位符

行定位符就是用來(lái)描述字符串的邊界?!癪”表示行的開(kāi)始;“$”表示行的結(jié)尾。

例如:

One is All    

All is One 



^One該表達(dá)式表示要匹配字符串One的開(kāi)始位置是行頭,如One is All就可以匹配,而All is One則不匹配。但如果使用:

One$則All is One可以匹配,而One is All不能匹配。如果要匹配的字符串可以出現(xiàn)在字符串的任意部分,那么可以直接寫(xiě)成:

One這樣,兩個(gè)字符串就都可以匹配了。

2、元字符

元字符就是在正則表達(dá)式中具有特殊意義的專用字符。

剛才我們所說(shuō)的“^”和“$”就是元字符,在Python有下面常用元字符:.、\w、\W、\s、\S、\d、\D、\b、^、$。

各種元字符及其說(shuō)明如下:

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

\w:匹配字母數(shù)字或下劃線或漢字

\W:匹配特殊字符,即非字母、非數(shù)字、非漢字

\s:匹配任意的空白符

\S:匹配非空白

\d:匹配數(shù)字

\D:匹配非數(shù)字,即不是數(shù)字

\b:匹配單詞的開(kāi)始或結(jié)束

^:匹配字符串的開(kāi)始

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

我們來(lái)看一個(gè)例子:

\byi\w*\b

匹配以字母yi開(kāi)頭的單詞,先匹配單詞開(kāi)始處(\b),然后匹配字母yi,接著匹配任意數(shù)量的字母或數(shù)字(\w*),最后匹配單詞結(jié)束處(\b)。該表達(dá)式可以匹配如“yibenshu”“saneryi”“haoyige”“yi12345”等。

3、限定符

在上面的元字符的例子中,使用“\w*”匹配任意數(shù)量的字母或數(shù)字。如果想匹配特定數(shù)量的數(shù)字,該如何表示呢?正則表達(dá)式為我們提供了限定符(指定數(shù)量的字符)來(lái)實(shí)現(xiàn)該功能。

例如,匹配6位qq號(hào)可用如下表達(dá)式:

^\d{6}$

常用的限定符如下所示:*、+、?、{n} 、{n,}、{n,m}、[] 。

各種限定符及說(shuō)明及舉例如下:

* :匹配前面的字符零次或更多次。例如“zo*”能匹配“z” “zo”以及“zoo”,“*”等效于“{0,}”

+ :匹配前面的字符一次或更多次。例如“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”,“+”等效于"{1,}”

? :匹配前面的字符零次或一次。例如“do(es)?”可以匹配 “do”或 “does”中的“do”,“?”等效 于 “{0,1}”

{n} :匹配前面的字符n次。例如“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food” 中的兩個(gè) o

{n,} :匹配前面的字符n次或更多次。例如“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o, 等效于“o+”,“o{0,}”則等效于“o*”

{n,m} :匹配前面的字符n到m次。其中 n<=m。最少匹配 n 次且最多匹配 m 次。例如“o{1,3}”將匹配“fooooood" 中的前三個(gè)“o”,“o{0,l}”等效于“0?”。注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格

4、字符集

正則表達(dá)式查找數(shù)字和字母是很簡(jiǎn)單的,因?yàn)橐呀?jīng)有了對(duì)應(yīng)這些字符集合的元字符(如\d,\w),但是如果要匹配沒(méi)有預(yù)定義元字符的字符集合(比如元音字母a, e, i, o, u),應(yīng)該怎么辦?很簡(jiǎn)單,只需要在方括號(hào)里列出它們就行了,像[aeiou]就匹配任何一個(gè)英文元音字母。

[xyz]表示匹配里面的任意一個(gè)字符。

[a-z]字符范圍,匹配指定范圍內(nèi)的任意字符。例如“[a-z]”可以匹配“a”到“z”范圍內(nèi)的任意小寫(xiě)字母字符

[.?!]匹配標(biāo)點(diǎn)符號(hào)“.”、“?”或“!”。也可以輕松地指定一個(gè)字符范圍,像[0-9]代表的含義與\d就是完全一致的:代表一位數(shù)字;同理,[a-z0-9A-Z_]也完全等同于\w(如果只考慮英文的話)。

要想匹配給定字符串中任意一個(gè)漢字,可以使用[\u4e00-\u9fa5];如果要匹配連續(xù)多個(gè)漢字,可以使用[\u4e00-\u9fa5]+。


5、排除字符

上方的字符集是匹配符合指定字符集的字符串。這里的排除字符,剛剛相反。排除字符就是匹配不符合指定字符集的字符串。在正則表達(dá)式中用“^”表示。我們?cè)谧铋_(kāi)始的行定位符中也說(shuō)到了“^”,放在開(kāi)頭,在這里放在方括號(hào)[]里面,表示排除的意思。如:

[^a-zA-Z]表示用于一個(gè)匹配非字母的字符。


6、選擇字符

Python中的選擇字符,包含著條件選擇的邏輯,在這里使用“|”來(lái)表示。該字符可以理解為“或”。

如中國(guó)人的身份證號(hào)碼長(zhǎng)度為15位或者18位。如果為15位,則全為數(shù)字;如果為18位,前17位為數(shù)字,最后一位是校驗(yàn)位,可能為數(shù)字或字符X。

匹配身份證的表達(dá)式可以寫(xiě)出如下方式:

(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|X|x)$

該表達(dá)式的意思是可以匹配15位數(shù)字,或者18位數(shù)字,或者17位數(shù)字和最后一位。最后一位可以是數(shù)字或者是X或者是x。


7、轉(zhuǎn)移字符

正則表達(dá)式中的轉(zhuǎn)義字符(\)和Python中的大同小異,都是將特殊字符(如“.”“?”“\”等)變?yōu)槠胀ǖ淖址?/span>

舉一個(gè)IP地址的實(shí)例,用正則表達(dá)式匹配如127.0.0.1這樣格式的IP地址。如果直接使用點(diǎn)字符,格式為:

[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}

這顯然不對(duì),因?yàn)椤?”可以匹配一個(gè)任意字符。這時(shí),不僅是127.0.0.1這樣的IP,連127101011這樣的字串也會(huì)被匹配出來(lái)。所以在使用“.”時(shí),需要使用轉(zhuǎn)義字符(\)。修改后,上面的正則表達(dá)式格式為:

[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

站長(zhǎng)在線提醒你:括號(hào)在正則表達(dá)式中也算是一個(gè)元字符。


8、分組

通過(guò)上面選擇字符中的例子,可以看見(jiàn)小括號(hào)的作用有了一定的了解。

小括號(hào)字符的第一個(gè)作用就是可以改變限定符的作用范圍,如“|”“*”“^”等。來(lái)看下面的一個(gè)表達(dá)式。

 (mon|ma)th

這個(gè)表達(dá)式的意思是匹配單詞month或math,如果不使用小括號(hào),那么就變成了匹配單詞mon和math了。

小括號(hào)的第二個(gè)作用是分組,也就是子表達(dá)式。例如(\.[0-9]{1,3}){3},就是對(duì)分組(\.[0-9]{1,3})進(jìn)行重復(fù)操作。



9、在Python中使用正則表達(dá)式語(yǔ)法

在Python中使用正則表達(dá)式時(shí),是將其作為模式字符串使用的。例如,將匹配不是字母的一個(gè)字符的正則表達(dá)式表示為模式字符串,可以使用下面的代碼:

 '[^a-zA-Z]'

而如果將匹配以字母m開(kāi)頭的單詞的正則表達(dá)式轉(zhuǎn)換為模式字符串,則不能直接在其兩側(cè)添加引號(hào)定界符,例如,下面的代碼是不正確的。

'\bm\w*\b'

而是需要將其中的“\”進(jìn)行轉(zhuǎn)義,轉(zhuǎn)換后的代碼為:

'\\bm\\w*\\b'

由于模式字符串中可能包括大量的特殊字符和反斜杠,所以需要寫(xiě)為原生字符串,即在模式字符串前加r或R。例如,上面的模式字符串采用原生字符串表示就是:

r'\bm\w*\b'

在編寫(xiě)模式字符串時(shí),并不是所有的反斜杠都需要進(jìn)行轉(zhuǎn)換。例如,前面編寫(xiě)的正則表達(dá)式“^\d{6}$”中的反斜杠就不需要轉(zhuǎn)義,因?yàn)槠渲械腬d并沒(méi)有特殊意義。不過(guò),為了編寫(xiě)方便,本教程所寫(xiě)正則表達(dá)式都采用原生字符串表示。

到此為止,本文學(xué)習(xí)的《Python中正則表達(dá)式的語(yǔ)法詳解》中的主要內(nèi)容有9點(diǎn):行定位符、元字符、限定符、字符集、排除字符、選擇字符、轉(zhuǎn)義字符、分組、在Python中使用正則表達(dá)式語(yǔ)法。就全部講解完畢了。有問(wèn)題,可以給我留言哦!

下一個(gè)知識(shí)點(diǎn),我們講解《在Python中使用re模塊實(shí)現(xiàn)正則表達(dá)式操作詳解》。歡迎你對(duì)站長(zhǎng)在線進(jìn)行關(guān)注,評(píng)論,點(diǎn)贊,分享、轉(zhuǎn)發(fā)!



本文地址:http://003188.cn/pythonzhengzebiaodashideyufa.html
碼字不易,打個(gè)賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

正則表達(dá)式在PHP8中的應(yīng)用案例-PHP8知識(shí)詳解

導(dǎo)讀:正則表達(dá)式在PHP8中有許多應(yīng)用案例。以下是一些常見(jiàn)的應(yīng)用場(chǎng)景:如數(shù)據(jù)驗(yàn)證、數(shù)據(jù)提取、數(shù)據(jù)替換、URL路由、文本搜索和過(guò)濾等。

2023-08-20  分類(lèi):PHP學(xué)堂  瀏覽:739次


Perl兼容正則表達(dá)式函數(shù)-PHP8知識(shí)詳解

導(dǎo)讀:本文學(xué)習(xí)的是在PHP8中,Perl兼容正則表達(dá)式函數(shù),主要講到了使用正則表達(dá)式對(duì)字符串進(jìn)行匹配、使用正則表達(dá)式替換字符串的字串和使用正則表達(dá)式切分字符串。

2023-08-20  分類(lèi):PHP學(xué)堂  瀏覽:824次


PHP8的正則表達(dá)式-PHP8知識(shí)詳解

導(dǎo)讀:你正在站長(zhǎng)在線學(xué)習(xí)PHP8的知識(shí),本文學(xué)習(xí)的是正則表達(dá)式。主要內(nèi)容有:行定位符、元字符、限定符、方括號(hào)、連字符、選擇字符、轉(zhuǎn)義字符、分組。

2023-08-19  分類(lèi):PHP學(xué)堂  瀏覽:780次


域名pythonw.cn出售

域名pythonw.cn的詳細(xì)信息:Python網(wǎng)

2022-08-06  分類(lèi):域名出售  瀏覽:1375次


站長(zhǎng)在線Python教程:Python中類(lèi)定義詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中類(lèi)定義詳解》。

2022-02-23  分類(lèi):Python學(xué)堂  瀏覽:1899次


站長(zhǎng)在線Python教程:python中面向?qū)ο笙嚓P(guān)概述詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《python中面向?qū)ο笙嚓P(guān)概述詳解》。本文的主要內(nèi)容有:面向?qū)ο笫鞘裁?、面向?qū)ο笾械膶?duì)象是什么、Python中的類(lèi)是什么、面向?qū)ο缶幊痰奶攸c(diǎn)有哪些?

2022-02-14  分類(lèi):Python學(xué)堂  瀏覽:1617次


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程23:函數(shù)的返回值、作用域和匿名函數(shù)

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)的返回值、作用域和匿名函數(shù)》。本文是一個(gè)大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。

2022-02-09  分類(lèi):Python學(xué)堂  瀏覽:1487次


站長(zhǎng)在線Python教程:Python函數(shù)中的匿名函數(shù)詳解

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。

2022-02-01  分類(lèi):Python學(xué)堂  瀏覽:1602次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的全局變量詳解

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中的全局變量詳解》。本文的主要內(nèi)容有:什么是全局變量、在函數(shù)外部定義的變量是全局變量、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。

2022-01-10  分類(lèi):Python學(xué)堂  瀏覽:1719次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的局部變量詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python函數(shù)中的局部變量詳解》。本文的主要內(nèi)容有:變量的作用域的概念、局部變量的概念、局部變量的舉例。

2022-01-06  分類(lèi):Python學(xué)堂  瀏覽:1620次