首頁  >  文章  >  後端開發  >  什麼是python re.compile 函數?

什麼是python re.compile 函數?

乌拉乌拉~
乌拉乌拉~原創
2018-08-20 17:57:1210060瀏覽

在這篇文章之中我們來了解一下關於python re.compile 的知識,有些朋友可能是剛剛接觸到python這一程式語言,對這一方面不是特別的了解,但是沒關係接下來這篇文章將會來帶大家來了解python之中compile函數的相關知識。

 re.compile 函數

compile 函數用來編譯正規表示式,產生一個正規表示式( Pattern )對象,供match() 和search() 這兩個函數使用。

語法格式如下:

re.compile(pattern[, flags])

參數:

pattern : 一個字串形式的正規表示式

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 為了增加可讀性,忽略空格和 # 後面的註解

#實例如下:

>>>import re
>>> pattern = re.compile(r'\d+')                    # 用于匹配至少一个数字
>>> m = pattern.match('one12twothree34four')        # 查找头部,没有匹配
>>> print m
None
>>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配
>>> print m
None
>>> m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配
>>> print m                                         # 返回一个 Match 对象
<_sre.SRE_Match object at 0x10a42aac0>
>>> m.group(0)   # 可省略 0
&#39;12&#39;
>>> m.start(0)   # 可省略 0
3
>>> m.end(0)     # 可省略 0
5
>>> m.span(0)    # 可省略 0
(3, 5)

在上面,當配對成功時返回一個Match 對象,其中:

1.group([group1, …]) 方法用於取得一個或多個分組匹配的字串,當要獲得整個匹配的子字串時,可直接使用 group () 或 group(0);

2.start([group]) 方法用於取得分組匹配的子字串在整個字串中的起始位置(子字串第一個字元的索引) ,參數預設值為0;

3.end([group]) 方法用於取得分組匹配的子字串在整個字串中的結束位置(子字串最後一個字元的索引1),參數預設值為0;

4.span([group]) 方法回傳 (start(group), end(group))。

以上就是這篇文章所講述的所有內容,這篇文章主要介紹了python中的re.compile 函數的相關知識,希望你能藉助資料從而理解上述所說的內容。希望我在這片文章所講述的內容能夠對你有幫助,讓你學習python更加輕鬆。

更多相關知識,請造訪php中文網Python教學欄位。

以上是什麼是python re.compile 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn