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


站長(zhǎng)在線Python精講:在Python中匹配字符串的3個(gè)方法詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python中匹配字符串的3個(gè)方法詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:使用match()方法進(jìn)行匹配、使用search()方法進(jìn)行匹配、使用findall()方法進(jìn)行匹配。

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)python知識(shí),本文學(xué)習(xí)的是《Python中匹配字符串的3個(gè)方法詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:使用match()方法進(jìn)行匹配、使用search()方法進(jìn)行匹配、使用findall()方法進(jìn)行匹配。


匹配字符串可以使用re模塊提供的match()、search()和findall()等方法。下面分別進(jìn)行介紹。

1、使用match()方法進(jìn)行匹配

match()方法用于從字符串的開(kāi)始處進(jìn)行匹配,如果在起始位置匹配成功,則返回Match對(duì)象,否則返回None。其語(yǔ)法格式如下:

re.match(pattern, string, [flags])

其中,相關(guān)參數(shù)說(shuō)明如下:

pattern:表示模式字符串,由要匹配的正則表達(dá)式轉(zhuǎn)換而來(lái)。

string:表示要匹配的字符串。

flags:可選參數(shù),表示標(biāo)志位,用于控制匹配方式,如是否區(qū)分字母大小寫(xiě)。

常用的標(biāo)志位及其說(shuō)明:

re.A或ASCII  對(duì)于\w、\w、\b、\B、\d、\B、\d、\D、]s、\S進(jìn)行ASCII匹配(僅適用于Python3)

re.I或IGNORECASE 使匹配對(duì)大小寫(xiě)不敏感

re.L 做本地化識(shí)別(locale-aware)匹配

re.M或MULTILINE 多行匹配,影響 ^ 和 $

re.S或DOTALL 使 . 匹配包括換行在內(nèi)的所有字符

re.U或UNicoDE 根據(jù)Unicode字符集解析字符。這個(gè)標(biāo)志影響 \w, \W, \b, \B.

re.X或VERBOSE 該標(biāo)志通過(guò)給予你更靈活的格式以便你將正則表達(dá)式寫(xiě)得更易于理解。

例如,匹配字符串是否以“zz_”開(kāi)頭,不區(qū)分字母大小寫(xiě),代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果
string = '項(xiàng)目名稱 ZZ_MALL zz_mall'    # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果

運(yùn)行結(jié)果如下:

<re.Match object; span=(0, 7), match='ZZ_MALL'>
None
>>> 

從上面的執(zhí)行結(jié)果中可以看出,字符串“ZZ_MALL”是以“zz_”開(kāi)頭,所以返回一個(gè)Match對(duì)象,而字符串“項(xiàng)目名稱 ZZ_MALL zz_mall”不是以“zz_”開(kāi)頭,所以返回None。這是因?yàn)閙atch()方法從字符串的開(kāi)始位置開(kāi)始匹配,當(dāng)?shù)谝粋€(gè)字母不符合條件時(shí),則不再進(jìn)行匹配,直接返回None。

Match對(duì)象中包含了匹配值的位置和匹配數(shù)據(jù)。其中,要獲取匹配值的起始位置可以使用Match對(duì)象的start()方法;要獲取匹配值的結(jié)束位置可以使用end()方法;通過(guò)span()方法可以返回匹配位置的元組;通過(guò)string屬性可以獲取要匹配的字符串。例如下面的代碼:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區(qū)分大小寫(xiě)
print('匹配值的起始位置: ',match.start())
print('匹配值的結(jié)束位置: ',match.end())
print('匹配位置的元組: ',match.span())
print('要匹配的字符串: ',match.string)
print('匹配數(shù)據(jù): ',match.group())

運(yùn)行結(jié)果如下:

匹配值的起始位置:  0
匹配值的結(jié)束位置:  7
匹配位置的元組:  (0, 7)
要匹配的字符串:  ZZ_MALL zz_mall
匹配數(shù)據(jù):  ZZ_MALL
>>> 

下面實(shí)例,講解一個(gè)判定的手機(jī)號(hào)碼是不是有效的中國(guó)移動(dòng)的號(hào)碼。

import re                                       # 導(dǎo)入Python的re模塊
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
mobile = '13800000000'
match = re.match(pattern,mobile)                # 進(jìn)行模式匹配
if match == None:                               # 判斷是否為None,為真表示匹配失敗
    print(mobile,'不是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。')
else:
    print(mobile,'是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。')
mobile = '13100000000'
match = re.match(pattern,mobile)                # 進(jìn)行模式匹配
if match == None:                               # 判斷是否為None,為真表示匹配失敗
    print(mobile,'不是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。')
else:
    print(mobile,'是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。')

運(yùn)行結(jié)果如下:

13800000000 是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。
13100000000 不是有效的中國(guó)移動(dòng)手機(jī)號(hào)碼。
>>> 

2、使用search()方法進(jìn)行匹配

search()方法用于在整個(gè)字符串中搜索第一個(gè)匹配的值,如果在起始位置匹配成功,則返回Match對(duì)象,否則返回None。其語(yǔ)法格式如下:

re.search(pattern, string, [flags])

其中,相關(guān)參數(shù)說(shuō)明如下:

pattern:表示模式字符串,由要匹配的正則表達(dá)式轉(zhuǎn)換而來(lái)。

string:表示要匹配的字符串。

flags:可選參數(shù),表示標(biāo)志位,用于控制匹配方式,如是否區(qū)分字母大小寫(xiě)。常用的標(biāo)志前面說(shuō)了。

例如,搜索第一個(gè)以“zz_”開(kāi)頭的字符串,不區(qū)分字母大小寫(xiě),代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.search(pattern,string,re.I) # 匹配字符串,不區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果
string = '項(xiàng)目名稱 ZZ_MALL zz_mall'    # 要匹配的字符串
match = re.search(pattern,string,re.I) # 匹配字符串,不區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果

運(yùn)行結(jié)果如下:

<re.Match object; span=(0, 7), match='ZZ_MALL'>
<re.Match object; span=(5, 12), match='ZZ_MALL'>
>>> 

3、使用findall()方法進(jìn)行匹配

findall()方法用于在整個(gè)字符串中搜索所有符合正則表達(dá)式的字符串,并以列表的形式返回。如果匹配成功,則返回包含匹配結(jié)構(gòu)的列表,否則返回空列表。其語(yǔ)法格式如下:

re.findall(pattern, string, [flags])

其中,相關(guān)參數(shù)說(shuō)明如下:

pattern:表示模式字符串,由要匹配的正則表達(dá)式轉(zhuǎn)換而來(lái)。

string:表示要匹配的字符串。

flags:可選參數(shù),表示標(biāo)志位,用于控制匹配方式,如是否區(qū)分字母大小寫(xiě)。常用的標(biāo)志上面有了。

例如,搜索以“zz_”開(kāi)頭的字符串,不區(qū)分字母大小寫(xiě),代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.findall(pattern,string,re.I)# 匹配字符串,不區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果
string = '項(xiàng)目名稱 ZZ_MALL zz_mall'    # 要匹配的字符串
match = re.findall(pattern,string)     # 匹配字符串,區(qū)分大小寫(xiě)
print(match)                           # 輸出匹配結(jié)果

運(yùn)行結(jié)果為:

['ZZ_MALL', 'zz_mall']
['zz_mall']
>>> 

上方下面這個(gè)結(jié)果只有一個(gè),因?yàn)槲沂褂昧四J(rèn)的設(shè)置,進(jìn)行區(qū)分大小寫(xiě)了。

到此為止,本文學(xué)習(xí)的是《在Python中匹配字符串的3個(gè)方法詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:使用match()方法進(jìn)行匹配、使用search()方法進(jìn)行匹配、使用findall()方法進(jìn)行匹配。就講解完畢了,有問(wèn)題可以給我留言哦!

下一個(gè)知識(shí)點(diǎn),我們講解《在Python中替換字符串詳解》。歡迎你對(duì)站長(zhǎng)在線進(jìn)行關(guān)注,評(píng)論,點(diǎn)贊,分享、轉(zhuǎn)發(fā)!



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

猜你喜歡

域名pythonw.cn出售

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

2022-08-06  分類:域名出售  瀏覽:1375次


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

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

2022-02-23  分類:Python學(xué)堂  瀏覽:1898次


站長(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中的類是什么、面向?qū)ο缶幊痰奶攸c(diǎn)有哪些?

2022-02-14  分類:Python學(xué)堂  瀏覽:1616次


站長(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  分類:Python學(xué)堂  瀏覽:1486次


站長(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  分類: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  分類:Python學(xué)堂  瀏覽:1718次


站長(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  分類:Python學(xué)堂  瀏覽:1620次


Python常用英語(yǔ)及用法

站長(zhǎng)在線站長(zhǎng),準(zhǔn)備系統(tǒng)的學(xué)習(xí)Python知識(shí),但是對(duì)我來(lái)說(shuō),英語(yǔ)實(shí)在是太差了,當(dāng)然我知道的是,不僅僅我,很多人在學(xué)習(xí)Python的時(shí)候,也是不知道這些英語(yǔ)單詞的意思與用法的,在這里站長(zhǎng)在線站長(zhǎng)就把這些英語(yǔ)整理出來(lái),把英語(yǔ)以及中文意思、用法一起貼出來(lái),讓大家一起來(lái)學(xué)習(xí)。

2022-01-02  分類:Python學(xué)堂  瀏覽:1833次


站長(zhǎng)在線Python精講:Python中函數(shù)的返回值

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中函數(shù)的返回值》。本文的主要內(nèi)容有:函數(shù)的返回值的含義、函數(shù)設(shè)置返回值的作用、return語(yǔ)句位置與多條 return語(yǔ)句的總結(jié)。

2021-12-29  分類:Python學(xué)堂  瀏覽:1792次


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程22:在Python中函數(shù)的參數(shù)傳遞

歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第22課《在Python中函數(shù)的參數(shù)傳遞》。本文是一個(gè)大課程分成了下面5節(jié)小課程:在Python函數(shù)中理解形式參數(shù)和實(shí)際參數(shù)、在Python函數(shù)中參數(shù)傳遞的位置參數(shù)詳解、在Python函數(shù)中的關(guān)鍵字參數(shù)詳解、在Python函數(shù)中的默認(rèn)參數(shù)詳解、在Python函數(shù)中的可變參數(shù)詳解。

2021-12-26  分類:Python學(xué)堂  瀏覽:1582次