首頁 > 軟體

python常用的正規表示式大全

2022-02-23 19:01:02

1.正規表示式

正規表示式是用來匹配與查詢字串的,從網上爬取資料自然或多或少會用到正規表示式,python的正規表示式要先引入re模組,正規表示式以r引導,例如:

其中**r“d+”**正規表示式表示匹配連續的多個數值,search是re中的函數,從"abc123cd"字串中搜尋連續的數值,得到"123",返回一個匹配物件,結果如上.

2.字串"d"匹配0~9之間的一個數值

3.字元"+"重複前面一個匹配字元一次或者多次.

注意:**r"bd+"**第一個字元要匹配"b",後面是連續的多個數位,因此"是b1233",不是"a12".

4.字元"*"重複前面一個匹配字元零次或者多次.

“" 與 "+"類似,但有區別,列如:

可見 r"ab+“匹配的是"ab”,但是r"ab “匹配的是"a”,因為表示"b"可以重複零次,但是”+“卻要求"b"重複一次以上.

5.字元"?"重複前面一個匹配字元零次或者一次.

匹配結果"ab”,重複b一次.

6.字元".“代表任何一個字元,但是沒有特別宣告時不代表字元”n".

結果“.”代表了字元"x".

7."|"代表把左右分成兩個部分 .

結果匹配"ab"或者"ba"都可以.

8.特殊字元使用反斜槓"“引導,例如”r"、"n"、"t"、""分別表示回車、換行、製表符號與反斜線自己本身.

9.字元"b"表示單詞結尾,單詞結尾包括各種空白字元或者字串結尾.

結果匹配"car",因為"car"後面是一個空格.

10."[]中的字元是任選擇一個,如果字元ASCll碼中連續的一組,那麼可以使用"-"字元連線,例如[0-9]表示0-9的其中一個數位,[A-Z]表示A-Z的其中一個大寫字元,[0-9A-z]表示0-9的其中一個數位或者A-z的其中一個大寫字元.

11."^"出現在[]的第一個字元位置,就代表取反,例如[ ^ab0-9]表示不是a、b,也不是0-9的數位.

12."s"匹配任何空白字元,等價"[rnx20tfv]"

13."w"匹配包括下劃線子內的單詞字元,等價於"[a-zA-Z0-9]"

14."$"字元比配字串的結尾位置

匹配結果是最後一個"ab",而不是第一個"ab"

15.使用括號(…)可以把(…)看出一個整體,經常與"+"、"*"、"?"的連續使用,對(…)部分進行重複.

結果匹配"abab","+“對"ab"進行了重複

16.查詢匹配字串

正規表示式re庫的search函數使用正規表示式對要匹配的字串進行匹配,如果匹配不成功返回None,如果匹配成功返回一個匹配物件,匹配物件呼叫start()函數得到匹配字元的開始位置,匹配物件呼叫end()函數得到匹配字串的結束位置,search雖然只返回匹配第一次匹配的結果,但是我們只要連續使用search函數就可以找到字串全部匹配的字串.

匹配找出英文句子中所有單詞

我們可以使用正規表示式r”[A-Za-z]+b"匹配單詞,它表示匹配由大小寫字母組成的連續多個字元,一般是一個單詞,之後"b"表示單詞結尾.

程式開始匹配到一個單詞後m.start(),m.end()就是單詞的起始位置,s[start:end]為擷取的單詞,之後程式再次匹配字串s=s[end:],即字串的後半段,一直到匹配完畢為止就找出每個單詞.

總結 

到此這篇關於python常用正規表示式的文章就介紹到這了,更多相關python正規表示式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com