python正則表達式


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代表的,這種寫法不規范,建議書寫的按照正確的表達式寫法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM