import re
正則表達式:
經常使用的符號:點號 問號 星號 和小括號
.:匹配任意字符,換行符\n除外
——點號能夠理解爲佔位符,一個點號匹配一個字符。
*:匹配前一個字符0次或無限次
?:匹配前一個字符0次或者1次
.*:貪心算法(儘量多的匹配到數據)
.*?:非貪心算法(儘量多的找到知足條件的組合)
():括號內的數據將會做爲結果返回。
經常使用的方法:findall,Search,Sub
findall:匹配全部符合規律的內容
Search:匹配並提出第一個符合規律的內容,返回一個正則表達式對象
Sub:替換符合規律的內容,返回替換後的值python
萬能表達式:
(.*?)正則表達式
多行表達式的匹配
re.S
算法
s='''sdfhajkdxxluhuanxx lsdhfxxwangpiaoxxsjdkf''' sub=re,findall('xx(.*?)xx',s,re.S) //findall和search的區別 sub= re.search('xx(.*?)xxdsfaxx(.*?)xx',s,re.S).group(1) sub= re.findall('xx(.*?)xxdsfaxx(.*?)xx',s,re.S) print sub[0][1] //在字符串中存在多行知足匹配規則。
小貼士:
匹配數字
a=sdfasd123415ksadfj2345kdsafj
b=re.findall('(\d+)',a)spa
匹配原則:
findall 和search匹配使用
先抓大再抓小
code