pythonRegex(7)--flag修飾符、match對象屬性

來源:互聯網
上載者:User

標籤:搜尋   包含   運算式   user   none   包括   line   and   content   

Regex—修飾符

Regex可以包含一些標誌修飾符來控制匹配模式,用在Regex處理函數中的flag參數中,為選擇性參數。

(1) re.I 全寫(re.IGNORECASE)

表示使匹配時,忽略大小

(2) re.M 全寫(re.MULTILINE)

多行匹配,影響 ^ 和 $的行為

(3) re.S 全寫(re.DOTALL)

使點(.)匹配包括換行在內的所有字元

(4) re.X 全寫(re.VERBOSE)

這個模式下Regex可以是多行,忽略空白字元,並可以加入注釋。

(5) 除以上標誌外還有re.L和re.U,但不常用(6) 可以通過使用運算子“|“來指定多個標誌,表示同時生效。

如: re.I | re.M被設定成I和M標誌,

content = ‘My username is zeke999!‘

re.search(r‘zeke\d{3}‘, content, re.I | re.M)

 

Match對象的屬性(1)string 屬性:

擷取匹配時使用的字串對象

>>> m = re.match(r‘\d+‘,‘456abc‘)

>>> m.string

‘456abc‘

 

(2)re 屬性:

匹配時使用的pattern對象,也就是匹配到內容的正則表達 式對象

>>> m

<_sre.SRE_Match object at 0x02C8FA68>

>>> m.re

<_sre.SRE_Pattern object at 0x02D4ECD0>

 

(3)pos屬性:

該屬性工作表示文本中Regex開始搜尋的索引。值與Pattern.match()和Pattern.seach()方法中的同名參數相同

>>> m.pos

0

 

(4)endpos屬性:

該屬性工作表示文本中Regex結束搜尋的索引。值與Pattern.match()和 Pattern.seach()方法中的同名參數相同

>>> m.endpos

6

 

(5)lastindex屬性:

該屬性工作表示最後一個被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None

>>> m = re.match(r‘a(b)(c)d‘,‘abcdef‘)

>>> m.lastindex

2

 

(6)lastgroup屬性:

該屬性工作表示最後一個被捕獲的分組別名。如果這個分 組沒有別名或者沒有被捕獲的分組,將為None。

 

(7)group([group1, ...]):

獲得一個或多個分組截獲的字串;指定多個參數時將以元組形式返回。group1可以使用編 號也可以使用別名;編號0代表匹配的整個子串;預設返回group(0)

執行個體:group函數傳多個參數

p = re.compile(‘(a(b)c)d‘)

m = p.match(‘abcd‘)

resTup = m.group(1,2,1)

print resTup

>>>(‘abc‘, ‘b‘, ‘abc‘)

 

(8)groups([default=None])

以元組形式返回全部分組截獲的字串。相當於調用group(1,2,…last)

 

(9)start([group=0])

返回指定的組截獲的子串在string中的起始索引(子串第一個字元的索引)。預設為第0組,即整個字串

 

(10)end([group=0])

返回指定的組截獲的子串在string中的結束索引(子串最後一個字元的索引)。group預設值 為0,即整個字串

 

(11)span([group])

該方法表示以元組的形式返回 (start(group), end(group)),即某個分組的匹配文字內容在被 匹配字串的開始索引位置和結束索引位置

 

(12)expand(template)

將匹配到的分組代入template中然後返回。template中可以使用\id或\g<id>、\g<name> 引用分組,但不能使用編號0。\id與\g<id>是等價的;但\10將被認為是第10個分組,如果 你想表達\1之後是字元‘0‘,只能使用\g<1>0。

m = re.search(r‘(\w+)! (\w+) (\w+)‘,‘HMan! How finny!‘) #將匹配的結果帶入 print m.expand(r‘resut:\3 \2 \1‘)  

>>> resut:finny How HMan

 

(13)groupdict([default=None])

該函數的作用是,將所有匹配到並且指定了別名的分組,以別名為key,匹配到的字串為value, 存於字典中,然後返回這個字典。如果運算式中未設定別名分組,就會返回一個空字典

>>> m = re.search(r‘(?P<num>\d+)(\w+)‘,‘78fd‘)

>>> m.groupdict()

{‘num‘: ‘78‘}

 

pythonRegex(7)--flag修飾符、match對象屬性

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.