python之正則表達式手冊(re)

正則表達式是描述文本序列的標準表達方式,在文本處理中用正則表達式來描述文本中的字符串。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,我們就認爲它“匹配”了,否則,該字符串就是不合法的。匹配時不會重複匹配其子串。

1.用字符表示字符

1.基礎符號【均只能匹配一個字符】

str(' ')

正則表達式(' ')【'\'均有特殊意義】

指定數字 如:‘1’ 與之相同     【 '1'】
指定字母  如::‘a' 與之相同    【 'a'】
指定特殊符號  如:指定'-' 需加上轉義符'\'      【'\-'】
指定多種字符【析取】  如:'a'或’b' '[  ]'    【'[ab]'】
表示範圍 如:1-3之間的數字 '-'     【'[1-3]'】【需與析取配合使用】

指定非這些字符的字符【非】

如: 非'a'  且 非'b'

'^'(脫字符) 【'[^ab]'】【需與析取配合使用,且脫字符在開方括號的第一個位置纔有效】
空白 ‘$’ 【只能放在結尾處】
'一個數字' '\d' 或 '\w'
'一個字母' '\w'
'一個字符'

'.'(通配符)

‘一個空格’(包括Tab等空白符) ‘\s'

2.拓展符號【均需與基礎符號組合使用,且只對前一個符號有效】

 

str(' ')【其中的某可不指定具體符號如:整數、字母等】

正則表達式(' ')【k爲某字符】

’某字符可有可無'【0/1個】

'k?' 
'至少一個某字符' 'k+'
'n個某字符' 'k{n}'
'n-m個某字符' 'k{n,m}'
'任意個某字符' 'k * ‘ 
r 表示原生字符串,不會轉義 r'k'
匹配kk,但只返回()中的k ‘(k)k’
   

2.用正則表達式提取字符串中的某些子串

功能 函數 參數解釋 返回值

判斷字符串中是否存在與正則表達式匹配的子串

【該子串起始位置爲0,既從頭開始匹配】

 

re.match(partten,string,flags=0)

partten:正則表達式

string:被匹配的字符串

flags:修飾符

若匹配成功則返回一個match對象,否則返回None

可使用group() 或 groups() 匹配對象函數來獲取search對象的字符串

判斷字符串中是否存在與正則表達式匹配的子串

【該子串起始位置爲任意,起點不一定爲0】

re.search(partten,string,flags=0)

partten:正則表達式

string:被匹配的字符串

flags:修飾符

若匹配成功則返回一個search對象,否則返回None

可使用group() 或 groups() 匹配對象函數來獲取search對象的字符串

提取string中所有匹配正確的子串 re.findall(partten,string,flags=0)

partten:正則表達式

string:被匹配的字符串

flags:修飾符

若匹配成功則返回一個非空list,否則返回[ ]
按照能夠匹配的子串將字符串分割 re.split(pattern, string, maxsplit=0, flags=0)

partten:正則表達式

string:被匹配的字符串

maxsplit:最大切分次數

flags:修飾符

返回被切割後的非空list

3.用正則表達式刪除某字串

功能 函數 參數解釋 返回值
將匹配到的字符進行替換 re.sub(pattern, repl, string, count=0,flags=0)

pattern : 正則中的模式字符串

repl: 用以替換匹配到的字符

string : 要被查找替換的原始字符串

count:被替換次數,0爲所有

flags:修飾符

返回值是修改後的結果字符串
       

參考:https://www.cnblogs.com/MrFiona/p/5954084.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章