python-Regex文法規範與案例

來源:互聯網
上載者:User

標籤:案例   第一個字元   obb   技術   從後往前   col   解釋   含義   color   

 

Regex的用於與案例分析

2018-08-24 21:26:14

【說明】:該文主要為了隨後複習和使用備查,由於做了word比較,所以此處博文沒有怎麼排版,沒放代碼,以插入圖片為主,

 

  • 一、Regex之特殊字元
  •  

     

    注意:

    以下的案例中是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】、()表示一個組。
  • 總結:Regex匯總表
  •  

    總結案例:【經典案例】
  • 案例一:

  • 案例2 :

  •  

python-Regex文法規範與案例

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.