1. 程式人生 > >python語法_模組_re(正則表達)

python語法_模組_re(正則表達)

字串操作方法有:

s = 'hello word'

s.find('l') 查詢第一個l的索引

s.replace('ll','xx') 替換

s.split('w') 以w進行分割

這些都是完全匹配,要進入模糊匹配就需要引進正則表示式

 

正則表示式,主要作為字串模糊匹配的作用

正則 元字元

. 點  ret = re.findall('w.r','hello world') . 點除了換行符以外,可以代指任何字元,一個點代表一個字元,點叫做萬用字元

尖角符^ ret = re.findall('^w.r','hello world') 從字串的開頭開始匹配,只從字串開頭開始匹配

$ 符 ret = re.findall('w.r$','hello world') 只在字串最後位置進行匹配,

* 重複匹配  ret  = re.findall('wr*'hello world')  重複匹配 優先匹配*前第一個字元

+重複匹配 ret = re.findall('ab+','hello b word') 重複匹配,至少要一個b 

? 重複匹配 ret = re.findall('a?b','aaaaaabsdsdabsdfsb') 重複0-1次a

{}重複匹配 ret = re.findeall('a{5}b','aaaaab') 重複匹配指定次數a,ret = re.findeall('a{1,3}b','aaasdasdn') 指定按區間匹配

[] 字符集  ret = re.findall('[a,b]','asdbasd'] 匹配a,或者b都可以。或的關係

[] 字符集 ret = re.findall('[a,*]),'as*') 取消元子符的特殊作用,這裡*已經不是元子符了,就是作為*這個字元。這三個字元例外(\ ^ -)

ret = re.findall('[1-9]','asd1231')    1-9的意思

ret = re.findall([^t],'tasdasd') 取反,除t以外的所有字元ret = re.findall([^t,a],'asd') t,a 是一組,這裡去除去t 和a 以外的其他字元

 

\ 正則裡最重要的一個:

反斜槓後面跟元子符取出特殊功能

反斜槓後面跟元字元實現特殊功能

\d 匹配任何十進位制數 等價於[0-9]

\D 匹配任何非十進位制數字符 等價於[^0-9]