python使用正則表達(dá)式替換匹配成功的組
正則表達(dá)式簡(jiǎn)介
正則表達(dá)式,又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達(dá)式、規(guī)則表達(dá)式、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。在很多文本編輯器里,正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式的文本。
許多程序設(shè)計(jì)語(yǔ)言都支持利用正則表達(dá)式進(jìn)行字符串操作。例如,在Perl中就內(nèi)建了一個(gè)功能強(qiáng)大的正則表達(dá)式引擎。正則表達(dá)式這個(gè)概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。正則表達(dá)式通??s寫成“regex”,單數(shù)有regexp、regex,復(fù)數(shù)有regexps、regexes、regexen。
最初的正則表達(dá)式出現(xiàn)于理論計(jì)算機(jī)科學(xué)的自動(dòng)控制理論和形式化語(yǔ)言理論中。在這些領(lǐng)域中有對(duì)計(jì)算(自動(dòng)控制)的模型和對(duì)形式化語(yǔ)言描述與分類的研究。 1940年,Warren McCulloch與Walter Pitts將神經(jīng)系統(tǒng)中的神經(jīng)元描述成小而簡(jiǎn)單的自動(dòng)控制元。 1950年代,數(shù)學(xué)家斯蒂芬·科爾·克萊尼利用稱之為“正則集合”的數(shù)學(xué)符號(hào)來描述此模型??稀者d將此符號(hào)系統(tǒng)引入編輯器QED,然后是Unix上的編輯器ed,并最終引入grep。自此,正則表達(dá)式被廣泛地使用于各種Unix或者類似Unix的工具,例如Perl。
Python提供了對(duì)正則表達(dá)式的支持,它內(nèi)嵌在Python中,通過Python的re模塊提供。
re模塊提供了類似于Perl的正則表達(dá)式語(yǔ)法。
通過使用正則表達(dá)式,我們可以制定需要匹配的字符串的特定格式,然后從需要處理的字符串中提取我們感興趣的字符串。Python中的re模塊也提供了像sub(),subn(),split()這些方法來實(shí)現(xiàn)通過正則表達(dá)式來靈活地進(jìn)行文本的替換和分割。
在Python中,正則表達(dá)式會(huì)被編譯成一系列的字節(jié)碼,然后由通過C編寫的正則表達(dá)式引擎進(jìn)行執(zhí)行。
好了,下面看下python使用正則表達(dá)式替換匹配成功的組,具體內(nèi)容如下所示:
在前面主要學(xué)習(xí)了怎么樣匹配成功,都沒有修改原來的內(nèi)容的?,F(xiàn)在來學(xué)習(xí)一個(gè)匹配成功之后修改相應(yīng)的內(nèi)容,在這里使用sub()函數(shù)來實(shí)現(xiàn)這個(gè)功能,同時(shí)使用引用組號(hào)來插入原來的字符,例子如下:
#python 3.6
#蔡軍生
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re
bold = re.compile(r'\*{2}(.*?)\*{2}')
text = 'Make this **cai**. This **junsheng**.'
print('Text:', text)
print('Bold:', bold.sub(r'<b>\1</b>', text))
結(jié)果輸出如下:
Text: Make this **cai**. This **junsheng**. Bold: Make this <b>cai</b>. This <b>junsheng</b>.
總結(jié)
以上所述是小編給大家介紹的python使用正則表達(dá)式替換匹配成功的組,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python中dump與dumps實(shí)現(xiàn)序列化
這篇文章就來介紹python中dump與dumps實(shí)現(xiàn)序列化,文章將圍繞dump與dumps實(shí)現(xiàn)序列化展開內(nèi)容且簡(jiǎn)精,需要的朋友可以參考一下,希望對(duì)你有所幫助2021-10-10
Python多進(jìn)程multiprocessing用法實(shí)例分析
這篇文章主要介紹了Python多進(jìn)程multiprocessing用法,結(jié)合實(shí)例形式分析了Python多線程的概念以及進(jìn)程的創(chuàng)建、守護(hù)進(jìn)程、終止、退出進(jìn)程、進(jìn)程間消息傳遞等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python3的UnicodeDecodeError解決方法
這篇文章主要介紹了python3的UnicodeDecodeError解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python中使用pprint函數(shù)進(jìn)行格式化輸出的教程
這篇文章主要介紹了Python中使用pprint函數(shù)進(jìn)行格式化輸出的教程,包括能夠控制輸出寬度等非常有用的特性,需要的朋友可以參考下2015-04-04
Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例
這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例,Classic (經(jīng)典模式)和Modern (現(xiàn)代模式),分別介紹了,需要的朋友可以參考下2014-06-06
python中pop()函數(shù)的語(yǔ)法與實(shí)例
這篇文章主要給大家介紹了關(guān)于python中pop()函數(shù)語(yǔ)法與實(shí)例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

