正則表達(dá)式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。
Python 自1.5版本起增加了re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。
re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。
compile 函數(shù)根據(jù)一個模式字符串和可選的標(biāo)志參數(shù)生成一個正則表達(dá)式對象。該對象擁有一系列方法用于正則表達(dá)式匹配和替換。
re 模塊也提供了與這些方法功能完全一致的函數(shù),這些函數(shù)使用一個模式字符串做為它們的第一個參數(shù)。
本章節(jié)主要介紹python使用正則表達(dá)式替換匹配成功的組并輸出替換的次數(shù)。
在前面我們學(xué)習(xí)過怎么樣限制替換的次數(shù),如果我們想知道正則表達(dá)式里匹配成功之后,替換字符串的次數(shù),那么需要怎么辦呢?這是一個好問題,這時就需要采用另一個外函數(shù)subn()了。這個函數(shù)不但輸出替換后的內(nèi)容,還輸出替換的次數(shù),例子:
1
2
3
4
5
6
7
8
9
|
#python 3.6 #蔡軍生 #http://blog.csdn.net/caimouse/article/details/51749579 # import re bold = re. compile (r '\*{2}(?P<bold_text>.*?)\*{2}' ) text = 'Make this **cai**. This **junsheng**.' print ( 'Text:' , text) print ( 'Bold:' , bold.subn(r '<b>\g<bold_text></b>' , text)) |
結(jié)果輸出如下:
1
2
|
Text: Make this * * cai * * . This * * junsheng * * . Bold: ( 'Make this <b>cai</b>. This <b>junsheng</b>.' , 2 ) |
ps:關(guān)于正則表達(dá)式有幾個需要交代的
python的正則表達(dá)式如果捕獲需要分組則使用這個語法(?P<命名>匹配的正則表達(dá)式)
re.compile用于編譯正則表達(dá)式并返回對象
p.finditer返回所有匹配的迭代器
p.sub將匹配項(xiàng)傳入回調(diào)函數(shù),并且用返回值替換文本
m.groupdict,可以使用則的分組命名取相應(yīng)的值
總結(jié)
以上所述是小編給大家介紹的python使用正則表達(dá)式替換匹配成功的組并輸出替換的次數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://blog.csdn.net/caimouse/article/details/78595409?utm_source=tuicool&utm_medium=referral