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]