在python中使用正則表達(dá)式有幾個(gè)必要的步驟
1、使用import re導(dǎo)入正則模塊
2、使用re.compile()函數(shù)創(chuàng)建一個(gè)Regex的對(duì)象
3、向Regex對(duì)象的方法(search、match)傳入查找的原始字符串,返回一個(gè)Match對(duì)象
4、調(diào)用Match對(duì)象的group()方法,獲得匹配的字符串
下面看幾個(gè)實(shí)際例子,其中前三個(gè)例子展示了search? findall mathch的區(qū)別
(1)Search()返回匹配到的第一個(gè)值

備注1、r'代表原字符串,轉(zhuǎn)義字符不生效
2、compile的第二個(gè)參數(shù),re.I代表不區(qū)分大小寫
第二個(gè)參數(shù)flags是匹配模式,可以使用按位或’|’表示同時(shí)生效,也可以在正則表達(dá)式字符串中指定。
Pattern對(duì)象是不能直接實(shí)例化的,只能通過compile方法得到。匹配模式有:
1).re.I(re.IGNORECASE): 忽略大小寫
2).re.M(MULTILINE): 多行模式,改變’^’和’$’的行為
3).re.S(DOTALL): 點(diǎn)任意匹配模式,改變’.’的行為
4).re.L(LOCALE): 使預(yù)定字符類 \w \W\b\B \s \S 取決于當(dāng)前區(qū)域設(shè)定
5).re.U(UNICODE): 使預(yù)定字符類 \w \W\b\B \s \S \d \D 取決于unicode定義的字符屬性
6).re.X(VERBOSE): 詳細(xì)模式。這個(gè)模式下正則表達(dá)式可以是多行,忽略空白字符,并可以加入注釋
(2)findall()方法,返回匹配到的所有結(jié)果,結(jié)果格式為一個(gè)字符串列表

(3)match()方法

嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none
*注:match和search一旦匹配成功,就是一個(gè)match object對(duì)象,而match object對(duì)象有以下方法:
group() 返回被 RE 匹配的字符串
start() 返回匹配開始的位置
end() 返回匹配結(jié)束的位置
span() 返回一個(gè)元組包含匹配 (開始,結(jié)束) 的位置
group() 返回re整體匹配的字符串,可以一次輸入多個(gè)組號(hào),對(duì)應(yīng)組號(hào)匹配的字符串。
a. group()返回re整體匹配的字符串,
b. group (n,m) 返回組號(hào)為n,m所匹配的字符串,如果組號(hào)不存在,則返回indexError異常
c.groups()groups() 方法返回一個(gè)包含正則表達(dá)式中所有小組字符串的元組,從 1 到所含的小組號(hào),通常groups()不需要參數(shù),返回一個(gè)元組,元組中的元就是正則表達(dá)式中定義的組