溫馨提示×

溫馨提示×

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

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

Python正則表達式初識(六)

發(fā)布時間:2020-07-22 14:57:08 來源:網(wǎng)絡(luò) 閱讀:333 作者:pengdongcheng 欄目:編程語言

繼續(xù)分享Python正則表達式基礎(chǔ),今天給大家分享的正則表達式特殊符號是“[]”。中括號十分實用,其有特殊含義,其代表的意思是中括號中的字符只要滿足其中任意一個就可以。其用法一共有三種,分別對其進行具體的代碼演示,在最后進行總結(jié),具體的教程如下。

1、如下圖所示,匹配模式為[abcd],在這里正則表達式代表的意思是字符串第一個字符是abcd四個字符中的任意一個,然后后面的字符是“cpeng123”,如果滿足匹配條件,則輸出結(jié)果,如果不滿足,則不顯示任何結(jié)果,如下圖所示。


Python正則表達式初識(六)


很顯然原始字符串的第一個字符是d,和匹配模式相接,所以輸出結(jié)果。

2、為了更好的加強理解,現(xiàn)在將原始字符串改為“acpeng123”,其他部分不做改動,如下圖所示。


Python正則表達式初識(六)


可以看到匹配的結(jié)果是“acpeng123”,匹配成功。

3、為進一步理解中括號的意思,現(xiàn)在將原始字符串改為“ecpeng123”,其他部分不做改動,如下圖所示。


Python正則表達式初識(六)


此時可以看到?jīng)]有任何結(jié)果輸出,因為在中括號中沒有對應(yīng)的匹配字符,滿足不了匹配要求,所以無任何輸出。

4、看下面一個例子,提取電話號碼,這個在實際應(yīng)用中十分常見。在這里介紹中括號的另外一種表達方式即[0-9],這個特殊字符代表的意思是數(shù)字0到9中的任意一個字符。下面的匹配模式'(1[34578][0-9]{9})'代表的意思是字符串以1開頭,然后第二個字符為3、4、5、7、8中任意一個,之后的字符是0到9中的數(shù)字,但是限定為9次,也就是說電話號碼的長度為1+1+9=11位。如果滿足上面的匹配要求,就輸出成功,否則就不輸出任何的字符。


Python正則表達式初識(六)


如上圖,很明顯原始字符串滿足匹配的要求,所以有輸出結(jié)果。

拓展知識:[a-z]代表26個英文小寫字母;[A-Z]代表26個英文大寫字母。

5、為了進一步加強理解,將原始字符串改為160開頭的號碼,然后進行輸出,如下圖所示。


Python正則表達式初識(六)


可以看到無任何輸出結(jié)果。

6、中括號的第三章用法是[^],在中括號中加入特殊字符“^”,表示非,取反的意思。舉個栗子,“[^1]”的意思是字符不等于1,下圖是代碼演示。


Python正則表達式初識(六)


可以看到原始字符串與匹配模式'(1[34578][^1]{9})'匹配成功,因為從第二個字符之后,字符串中就沒有1出現(xiàn),符合匹配規(guī)則。

即便是原始字符串中出現(xiàn)非數(shù)字的字符,只要不是1,也能夠匹配成功,如下圖所示。


Python正則表達式初識(六)


7、為了加強理解,先將原始字符串中的號碼改為‘18042682515’,在字符串后邊加個1,然后匹配模式不改變,如下圖所示。


Python正則表達式初識(六)


可以看到此時無任何輸出結(jié)果,因為原始字符串中出現(xiàn)了1,而匹配模式要求不能出現(xiàn)1,所以匹配不成功。

8、最后總結(jié)一下特殊字符中括號的用途。一、中括號中的任意一個字符,如[abcd],代表a、b、c、d這四個字符中的任意一個。

二、表示區(qū)間,如[0-9],代表數(shù)字0到9中的任意一個。同理[a-z],[A-Z],其代表的意思在上面有提及,在此就不再贅述了。

三、表示非或者取反,專有的表達式是[^],如匹配模式[^1]表示匹配的字符不為1。

四、中括號中的“.”,如匹配模式[.]或“*”,如匹配模式[*],就是純粹的代表“.”號和“*”號,不再是代表特殊字符中代表的任意字符或出現(xiàn)多次的意思,這點需要特別注意。


Python正則表達式初識(六)


中括號在模式匹配的過程中十分常用,希望小伙伴們都能夠好好理解和掌握。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI