python中使用re模塊來完成正則表達式,內置了許多表達式的方法,這里就簡單的介紹幾種常用的
一.re.match(pattern,string,flags)
pattern:表示書寫的正則表達式
string:需要匹配的字符串
flags:匹配方式(如:不區分大小寫)
flags主要分為以下幾種(使用多個匹配方式時可以用|隔開(或的意思))
re.I :不區分大小寫
re.L: 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴於當前環境
re.M :多行模式
re.S :即為 . 並且包括換行符在內的任意字符(. 不包括換行符)
re.U :表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴於 Unicode 字符屬性數據庫
re.X :為了增加可讀性,忽略空格和 # 后面的注釋
我們在使用re模塊調用match方法進行正則表達式匹配的會得到如下結果,不便於直接查看,可以在后面加上span()方法
會得到匹配第一個符合條件的字符緯度(簡單理解為坐標吧),我們可以看出,a中有兩個“www”,但是匹配出來的只
顯示出來一個匹配的結果,這是因為match()方法從目標字符的開頭開始匹配,若匹配有結果返回,沒有結果返回none,
我們要想返回匹配的正則表達式的結果,可以使用group()方法查看匹配后返回的結果。
二.re.search(pattern,string,flags)
pattern:表示書寫的正則表達式
string:需要匹配的字符串
flags:匹配方式(如:不區分大小寫)
search()和match()使用大致相同,唯一的不同就是匹配的方式,這也是兩者的不同點,search()是從整個字符串進行匹配的
有結果返回第一個匹配的結果,沒有結果就返回none,match(從開頭開始匹配,若開頭就不符合匹配要求直接返回none)
三.re.sub(pattern,repl,string,count,flags),對匹配的結果替換
pattern:表示書寫的正則表達式
repl:匹配后的結果
string:需要匹配的字符串
count:匹配的結果個數要替換的結果(0表示匹配的全部都替換,具體數字表示前多少個要替換)
flags:匹配方式(如:不區分大小寫)
四.re.compile(pattern),加工一個正則表達式並生成一個對象
五.re.findall(pattern,string,flags),將匹配的所有結果生成list
pattern:表示書寫的正則表達式
string:需要匹配的字符串
flags:匹配方式(如:不區分大小寫)
六.re.finditer(pattern,string,flags),將匹配的所有結果已迭代的形式返回
pattern:表示書寫的正則表達式
string:需要匹配的字符串
flags:匹配方式(如:不區分大小寫)
七.re.split(pattern,string,maxsplit,flags),在匹配的結果之間進行分割,並返回list形式
pattern:表示書寫的正則表達式
string:需要匹配的字符串
maxspilt:對匹配結果的前多少個進行分割
flags:匹配方式(如:不區分大小寫)
注:以上正則表達式中的寫法是以www代表的,這種寫法不規范,建議書寫的按照正確的表達式寫法