當前位置:
首頁 > 知識 > Python正則表達式語法補充

Python正則表達式語法補充

補充兩個初學時容易遺漏,但是對於實際應用Regex特別重要的知識點。

.* :匹配任意字元的任意次(可用於過濾掉無關的文字)

?:非貪婪匹配

下面看幾個Demo:

結果:

boooooobbbby123

bb

結果:

boooooobby123

boooooobb

結果:

boooooobby123

boooooob

結果和貪婪演算法有關,貪婪演算法同時從兩個方向(左,右)看匹配結果

取消貪婪的方式,匹配到第一個b就返回:

結果:

boooooobbbby123

boooooob

結果:

boooooobbbby123

boooooobbbb

結果:boooooobbbby123

貪婪的思想:把滿足匹配條件的字元串逐個都匹配一遍,返回最後一次匹配的結果

舉例:

結果:bbb (因為最後一個滿足條件的字元串是bbb)

結果:bab (因為最後一個滿足條件的字元串是bab,前一個滿足條件的字元串是bbb)

中括弧[ ]三大用途:

1.表示』或』關係,滿足其中條件之一就能匹配成功

2.定義區間[0-9] ,{ }:定義出現次數, 比如:\d{1,2} 出現1~2個數字,可以匹配日期中的月份,如』06』和』6』

3.取消特殊含義的字元(小數點等)代表的意義,比如[. ]中的小數點,不再代表匹配任意字元,除了換行符,

而代表單純的小數點(可以用代碼驗證一下)

提取漢字:[一-龥]

結果:京大學

出現上面結果的原因:受到了貪婪匹配的影響,匹配的第一個結果是南,第二個結果是京,

返回最後一個結果京,在條件的前面加一個?,取消貪婪

結果:南京大學

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千鋒JAVA開發學院 的精彩文章:

如何實現一個分散式調度系統
使用AOP實現許可權攔截校驗

TAG:千鋒JAVA開發學院 |