Python正規表示式初識(四)

deeply發表於2021-09-09

今天繼續給大家分享Python正規表示式基礎知識,主要給大家介紹一下特殊字元“{}”的用法,具體的教程如下。

153838401127664841654a7

特殊字元“{}”實質上也是一個限定詞的用法,其限定前面字元所出現的次數,其常用的模式有三種,分別是“{數字}”、“{數字,}”和“{數字1, 數字2}”。舉個例子,如“{1}”、“{1,}”和“{1, 3}”。到這裡可能大家還不是很清楚,下面依次通過例項來演示一下,加深對特殊字元“{}”的理解。

1、如下圖所示,限定字元p前面的字元出現1次,則根據貪婪匹配模式,pap成功匹配到。

15383840222926481f4a001

2、如果將匹配模式更改為“.*(p.{2}p).*”,則無任何的輸出,如下圖所示,因為此時並沒有任何的字字串符合匹配條件。

1538384048988af864c2c33

3、相應的,我們將原始字串做一下更改,如下圖所示,此時“.*(p.{2}p).*”匹配模式有對應的結果,如下圖所示。

1538384061851f65a681216

4、特殊字元“{1,}”代表的是前面的字元出現1次及以上;特殊字元“{2,}”代表的是前面的字元出現2次及以上;特殊字元“{3,}”代表的是前面的字元出現3次及以上;以此類推。舉個例子,如下圖所示。

153838406929443e38fdbf4

我們要匹配出現p字元前面出現3次及以上的次數,此時子字串phhhhp被提取出來,但是pap和paap都沒有提取到,因為其不滿足匹配條件。

5、特殊字元“{1, 3}” 代表的是前面的字元至少出現1次,最多出現3次;特殊字元“{2, 5}” 代表的是前面的字元至少出現2次,最多出現5次;以此類推。舉個例子,如下圖所示。

當使用特殊字元“{1, 3}”的時候,如下圖所示:

153838407865497c643df6f

貪婪模式下,字串從右邊開始往左取,首先遇到相對滿足條件的子字串是phhhhp,但是並不符合規則,因為該子字串出現的次數為4次,而限定條件為1次到3次,所以這個子字串不符合匹配條件,爾後繼續往前匹配,得到匹配結果paap,滿足匹配條件。

6、同理,當使用特殊字元“{3, 5}”的時候,如下圖所示:

1538384085939f3aab8d2b8

根據上一步的分析可以得知,該匹配結果為phhhhp。

小夥伴們,關於正規表示式特殊字元“{}”的用法,你們get到了嗎?


相關文章