python正規表示式

2021-07-06 00:12:34 字數 1207 閱讀 7176

正規表示式是一種小型的、高度專業化的程式語言, 它內嵌在python中, 通過re模組來實現.

普通字元:大多數字母和字元都會和自身匹配

元字元:. ^ $ * + ? [ ] \ | ( )

常常用來指定乙個字符集,如:[abc] [a-z]

元字元在字符集中不起作用:[abc]表示abc和四個字元的任意乙個, $在中不表示以…結尾

補集匹配不在區間範圍內的字元:[^abc]

注:通常情況^匹配行首, 但是在中且放在開頭位置, 代表」補集匹配」

匹配行首。除非設定multiline標誌,它只是匹配字串的開始。在multiline模式裡,它也可以匹配字串的每個換行。

匹配行尾,行尾被定義為要麼是字串尾, 要麼是乙個換行字元的任何位置.

反斜槓加不同的字元表示不同的意義; 也可以取消元字元: [ |

\d 相當於[0-9]

\d 相當於[^0-9]

\s 匹配任何空白字元, 相當於 [\t\n\r\f\v]

\s匹配任何非空白字元, 相當於 [^\t\n\r\f\v]

\w匹配任何數字字母,相當於[a-za-z0-9]

\w匹配任何非數字字母,相當於[^a-za-z0-9]

*表示前乙個字元重複0次或者多次

+表示前乙個字元重複1次或者多次

? 表示前乙個字元重複0次或者1次

表示前乙個字元重複n次

重複至少m次, 至多n次

重複至少m次, 無上限

相當於*

相當於+

相當於?

注意:花括號裡面不能出現空格, 這樣有空格錯誤

貪婪匹配和非貪婪匹配:

>>> 

import re

>>> s = r'\d'

#貪婪匹配, 以最大次數4匹配

>>> re.findall(s, '111111111111111')

['1111', '1111', '1111', '111']

>>> s = r'\d?'

#在重複後面加?則為非貪婪匹配,以最小次數2作為匹配

>>> re.findall(s, '111111111111111')

['11', '11', '11', '11', '11', '11', '11']

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...