濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > python 正則表達(dá)式 re.sub & re.subn

python 正則表達(dá)式 re.sub & re.subn

熱門標(biāo)簽:貴港公司如何申請(qǐng)400電話 呼叫系統(tǒng)外呼只能兩次 400電話辦理電話辦理 甘肅醫(yī)療外呼系統(tǒng)排名 西藏智能外呼系統(tǒng)代理商 外呼系統(tǒng)無(wú)呼出路由是什么原因 ai電話機(jī)器人搭建 梅縣地圖標(biāo)注 地圖標(biāo)注教學(xué)點(diǎn)

python正則表達(dá)式模塊簡(jiǎn)介

Python 自1.5版本起增加了re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。Python 1.5之前版本則是通過(guò) regex 模塊提供 Emacs 風(fēng)格的模式。Emacs 風(fēng)格模式可讀性稍差些,而且功能也不強(qiáng),因此編寫新代碼時(shí)盡量不要再使用 regex 模塊,當(dāng)然偶爾你還是可能在老代碼里發(fā)現(xiàn)其蹤影。

就其本質(zhì)而言,正則表達(dá)式(或 RE)是一種小型的、高度專業(yè)化的編程語(yǔ)言,(在Python中)它內(nèi)嵌在Python中,并通過(guò) re 模塊實(shí)現(xiàn)。使用這個(gè)小型語(yǔ)言,你可以為想要匹配的相應(yīng)字符串集指定規(guī)則;該字符串集可能包含英文語(yǔ)句、e-mail地址、TeX命令或任何你想搞定的東西。然后你可以問(wèn)諸如“這個(gè)字符串匹配該模式嗎?”或“在這個(gè)字符串中是否有部分匹配該模式呢?”。你也可以使用 RE 以各種方式來(lái)修改或分割字符串。

正則表達(dá)式模式被編譯成一系列的字節(jié)碼,然后由用 C 編寫的匹配引擎執(zhí)行。在高級(jí)用法中,也許還要仔細(xì)留意引擎是如何執(zhí)行給定 RE ,如何以特定方式編寫 RE 以令生產(chǎn)的字節(jié)碼運(yùn)行速度更快。本文并不涉及優(yōu)化,因?yàn)槟且竽阋殉浞终莆樟似ヅ湟娴膬?nèi)部機(jī)制。

正則表達(dá)式語(yǔ)言相對(duì)小型和受限(功能有限),因此并非所有字符串處理都能用正則表達(dá)式完成。當(dāng)然也有些任務(wù)可以用正則表達(dá)式完成,不過(guò)最終表達(dá)式會(huì)變得異常復(fù)雜。碰到這些情形時(shí),編寫 Python 代碼進(jìn)行處理可能反而更好;盡管 Python 代碼比一個(gè)精巧的正則表達(dá)式要慢些,但它更易理解。

正則表達(dá)式一個(gè)比較常見的用途是找到所有模式匹配的字符串并用不同的字符串來(lái)替換它們。sub方法提供一個(gè)替換值,可以是字符串或函數(shù),和一個(gè)要被處理的字符串。

Grammar:

re.sub(pattern, repl, string[, count])

使用repl替換string中每一個(gè)匹配的子串后返回替換后的字符串。

當(dāng)repl是一個(gè)字符串時(shí),可以使用\id或\g、\g引用分組,但不能使用編號(hào)0。

當(dāng)repl是一個(gè)方法時(shí),這個(gè)方法應(yīng)當(dāng)只接受一個(gè)參數(shù)(Match對(duì)象),并返回一個(gè)字符串用于替換(返回的字符串中不能再引用分組)。

count用于指定最多替換次數(shù),不指定時(shí)全部替換。

re.subn(pattern, repl, string[, count])

返回 (sub(repl, string[, count]), 替換次數(shù))。

Case:

#coding=utf-8
import re
str = "https://i.cnb1logs.co2m/Edi3tPosts.asp4x?opt=999"
pattern=re.compile(r'(\.)')
print '\.     :' ,re.sub(pattern,'-',str)
pattern=re.compile(r'\/([^*]+)\/')
print '\/([^*]+)\/ :' ,re.sub(pattern,r'em>\1em>',str)
pattern = re.compile(r'(\w+)(\w+)(\d+)')
#先切片測(cè)試
print re.split(pattern,str)
print re.sub(pattern,r'\3 \1',str)
#subn統(tǒng)計(jì)sub替換次數(shù)
print re.subn(pattern,r'\3 \1',str)

Output

\.     : https://i-cnb1logs-co2m/Edi3tPosts-asp4x?opt=999
\/([^*]+)\/ : https:em>/i.cnb1logs.co2mem>Edi3tPosts.asp4x?opt=999
['https://i.', 'cn', 'b', '1', 'logs.', 'c', 'o', '2', 'm/', 'Ed', 'i', '3', 'tPosts.', 'as', 'p', '4', 'x?opt=', '9', '9', '9', '']
https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9
('https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9', 5)
***Repl Closed***

總結(jié)

您可能感興趣的文章:
  • Python正則替換字符串函數(shù)re.sub用法示例
  • python使用正則表達(dá)式替換匹配成功的組
  • Python基于正則表達(dá)式實(shí)現(xiàn)文件內(nèi)容替換的方法
  • python re.sub()替換正則的匹配內(nèi)容方法

標(biāo)簽:哈密 ???/a> 泰安 常州 湖州 涼山 本溪 大興安嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 正則表達(dá)式 re.sub & re.subn》,本文關(guān)鍵詞  python,正則,表達(dá)式,re.sub,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 正則表達(dá)式 re.sub & re.subn》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python 正則表達(dá)式 re.sub & re.subn的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    广汉市| 顺义区| 南阳市| 广南县| 麻栗坡县| 扎兰屯市| 那坡县| 深圳市| 寿宁县| 呼伦贝尔市| 甘南县| 小金县| 东海县| 宁武县| 察雅县| 定南县| 乌拉特后旗| 共和县| 永川市| 新疆| 临夏市| 乌兰察布市| 灵台县| 平邑县| 饶平县| 华宁县| 伽师县| 平罗县| 鹤庆县| 泾源县| 西乌| 大新县| 余江县| 桐乡市| 金溪县| 沽源县| 麟游县| 崇阳县| 同心县| 扬州市| 祥云县|