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
>>> some_text = 'a,b,,,,c d'
>>> reobj = re.compile('[, ]+')
>>> reobj.split(some_text)
['a', 'b', 'c', 'd']
複製**
re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。
re.match(pattern, string, flags=0)
複製**
引數說明:
pattern 匹配的正規表示式
string 要匹配的字串。
flags 標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
>>>import re
>>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.i) # re.i 表示忽略大小寫
>>> m = pattern.match('hello world wide web')
>>> print m # 匹配成功,返回乙個 match 物件
<_sre.sre_match object at 0x10bea83e8>
>>> m.group(0) # 返回匹配成功的整個子串
'hello world'
>>> m.span(0) # 返回匹配成功的整個子串的索引
(0, 11)
>>> m.group(1) # 返回第乙個分組匹配成功的子串
'hello'
>>> m.span(1) # 返回第乙個分組匹配成功的子串的索引
(0, 5)
>>> m.group(2) # 返回第二個分組匹配成功的子串
'world'
>>> m.span(2) # 返回第二個分組匹配成功的子串
(6, 11)
>>> m.groups() # 等價於 (m.group(1), m.group(2), ...)
('hello', 'world')
複製**
在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
findall(string[, pos[, endpos]])
複製**
引數說明:
string : 待匹配的字串。
pos : 可選引數,指定字串的起始位置,預設為 0。
endpos : 可選引數,指定字串的結束位置,預設為字串的長度。
# -*- coding:utf8 -*-
>>>import re
>>>pattern = re.compile(r'\d+') # 查詢數字
>>>result1 = pattern.findall('runoob 123 google 456')
>>>result2 = pattern.findall('run88oob123google456', 0, 10)
>>>print(result1)
['123', '456']
>>>print(result2)
['88', '12']
複製**
按照能夠匹配的子串將字串分割後返回列表。 語法格式為: re.split(pattern, string[, maxsplit=0, flags=0]) 引數說明:
pattern : 匹配的正規表示式
string : 要匹配的字串。
maxsplit : 分隔次數,maxsplit=1 分隔一次,預設為 0,不限制次數。
flags : 標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
>>>import re
>>> re.split('\w+', 'runoob, runoob, runoob.')
['runoob', 'runoob', 'runoob', '']
>>> re.split('(\w+)', ' runoob, runoob, runoob.')
['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', '']
>>> re.split('\w+', ' runoob, runoob, runoob.', 1)
['', 'runoob, runoob, runoob.']
>>> re.split('a*', 'hello world') # 對於乙個找不到匹配的字串而言,split 不會對其作出分割
['hello world']
複製**
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...