【1】python-正則表達式語法規范與案例


 

正則表達式的用法與案例分析

2018-08-24 21:26:14

【說明】:該文主要為了隨后復習和使用備查,由於做了word文檔筆記,所以此處博文沒有怎么排版,沒放代碼,以插入圖片為主,

 

  • 一、正則表達式之特殊字符

  •  
                
               

     

     
              

     

    注意:

    以下的案例中是match()匹配,match是要求從第一個字符開始匹配,所以,前邊是有.*

  • 【1】^ 作用- 以b 開頭匹配的結果

  •  

  • 【2】$ 作用-任意開頭,以3結尾

  • 注意:下邊這種是不行的,如果沒有*號,就不表示多次了。

  • 表示4為匹配第三位的。點是匹配第二位的。

  • 【3】?的作用

  • (1)貪婪匹配默認是反向匹配的

    貪婪匹配下,是從后往前 開始匹配的。如下例子。

     

  • (2)、在左邊加一個?號則正向匹配

  • 在左邊 加一個?的話,就會從左往右開始匹配。是非貪婪匹配了,但是括號里面的仍然是貪婪匹配。【即從左匹配,第一個b被固定了,但是括號里的第二個b還是從右開始匹配,。*再輸出中間的一切內容。】

  • (3)、在括號里也添加括號,進行非貪婪匹配

  • #技巧:括號里是有問好的,所以在第一個b 確定下后 .*?b是從左往右的
    # 輸出是:boooooob
  • 【4】、+的作用

  • 簡述以上?的原理

    其實,上邊說的從左從右匹配都是一種技巧的規則,其實完全可以按照下邊的這三個符號的含義來解釋。

    *表示0次或者多次

    +表示1次或者多次

    ?0次或者是1次

  • 比如:

    Line=”booooooobbaaa”

    pattern=“.*(b.*b)”這里的兩處.*都是貪婪匹配模式的,小括號中的.*【由於*是表示0/1次,】所以匹配出黃色部分的bb。

  • +的作用:

    +其實是表示1次或者是多次的匹配模式的。

    比如:對於以下

    Line=”booooooobbaaa”

    pattern=“.*(b.+b)”就無法匹配成功,因為.+是至少要匹配1個元素的,那么開頭結尾都是b,中間還要一個元素的情況是沒有的。

    那么比如:

    Line=”booooooobabaaa”

    pattern=“.*(b.+b)”

    就匹配出了結果是bab

  • 【案例分析】

  • (1)
  • (2)

     

  • (3)

  •  

  • 【5】、{2}的作用、

    {1}  {2}  表示某一個限定元素的出現此時。

    案例分析:

  • (1)
  • (2)

  •  

  • (3)
  •  

  • 【6】、{2,}&&{2,5}

  • 1、{2,}表示兩次或以上的輸出

  • {2,5}

    Y與上邊原理相同,表示,大於等於2 小於等於5

  •  

  • 【7】、| 的用法

  • 這個符號代表或的關系。

  • 特殊括號的用法

  • 輸出boobb123

  • 【8】、[ ]的用法

  • 《1》[ ]第一個用法表示中括號中的任意一個值滿足就進行匹配操作。

  • 案例如下:

  • 《2》[0-9]中括號的第二個含義,可以表示區間。

  • 比如說匹配電話號碼:

    Phone_num_pattern=”1[3578][0-9]{9}”

    表示,可以匹配13*****  /15*****/17*************/18***********的電話號碼,后邊九位是0—9任意,{9}表示9個數字

  • 《3》[^1] 的第三個用法。表示中括號的值不是1 的所有情況匹配

  • 《4》[]的第四個用法 [.]中的.就表示一個點了。

  •  

  • 【9】、\s(小)表示可以匹配空格字符

  • \s 是匹配空白字符

  • 【10】、\S(大) 是匹配除了換行的任何非空白字符的

  • 如果您好中間有多個字符可以用 “(您\S+好)”進行匹配來完成

  •  

  • 【11】、\w 的用法  【重點】------是與\S(大)比較相似

  •  \w 的含義是[A-Za-z0-9_]    是與\S有區別的,比如\S是可以匹配到+號的

  •  

  • 【12】、\W 是表示除了[A-Za-z0-9_]之外的所有字符

  • \W 是表示除了[A-Za-z0-9_]之外的所有字符,它恰好與\w相反的一個匹配功能。

  •  

  • 【13】、Unicode漢字的提取

  • 提取代碼是 [\u4E00-\u9FA5]+

  •  

  • 【14】、再次理解貪婪匹配

  •  

  • 【15】 \d 的用法 是提取出數字

  •  

  • 【16】、()表示一個組。

  • 總結:正則表達式匯總表

  •  

    總結案例:【經典案例】

  • 案例一:

  • 案例2 :

  •  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM