国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python模塊之re正則表達(dá)式詳解

2020-02-23 04:19:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、簡(jiǎn)單介紹

正則表達(dá)式是一種小型的、高度專業(yè)化的編程語(yǔ)言,并不是python中特有的,是許多編程語(yǔ)言中基礎(chǔ)而又重要的一部分。在python中,主要通過(guò)re模塊來(lái)實(shí)現(xiàn)。

正則表達(dá)式模式被編譯成一系列的字節(jié)碼,然后由用c編寫(xiě)的匹配引擎執(zhí)行。那么正則表達(dá)式通常有哪些使用場(chǎng)景呢?

比如為想要匹配的相應(yīng)字符串集指定規(guī)則;

該字符串集可以是包含e-mail地址、Internet地址、電話號(hào)碼,或是根據(jù)需求自定義的一些字符串集;

當(dāng)然也可以去判斷一個(gè)字符串集是否符合我們定義的匹配規(guī)則;

找到字符串中匹配該規(guī)則的部分內(nèi)容;

修改、切割等一系列的文本處理;

......

二、特殊符號(hào)和字符(元字符)

這里介紹常見(jiàn)的一些元字符,它給予正則表達(dá)式強(qiáng)大的功能和靈活性。表2-1列出了比較常見(jiàn)的符號(hào)和字符。

三、正則表達(dá)式

1、使用 compile()函數(shù)編譯正則表達(dá)式

由于python代碼最終會(huì)被翻譯成字節(jié)碼,然后在解釋器上執(zhí)行。所以對(duì)于我們代碼中經(jīng)常要用到的一些正則表達(dá)式進(jìn)行預(yù)編譯,執(zhí)行起來(lái)會(huì)更加便捷。

re模塊中的大多數(shù)函數(shù)和已經(jīng)編譯的正則表達(dá)式對(duì)象和正則匹配對(duì)象的方法同名并且具有相同的功能。

示例:

>>> import re>>> r1 = r'bugs'       # 字符串前加"r"反斜杠就不會(huì)被任何特殊方式處理,這是個(gè)習(xí)慣,雖然這里沒(méi)用到>>> re.findall(r1, 'bugsbunny')    # 直接利用re模塊進(jìn)行解釋性地匹配['bugs']       >>>>>> r2 = re.compile(r1)      # 如果r1這個(gè)匹配規(guī)則你會(huì)經(jīng)常用到,為了提高效率,那就進(jìn)行預(yù)編譯吧>>> r2          # 編譯后的正則對(duì)象<_sre.SRE_Pattern object at 0x7f5d7db99bb0>>>>>>> r2.findall('bugsbunny')     # 訪問(wèn)對(duì)象的findall方法得到的匹配結(jié)果與上面是一致的['bugs']         # 所以說(shuō),re模塊中的大多數(shù)函數(shù)和已經(jīng)編譯的正則表達(dá)式對(duì)象和正則匹配對(duì)象的方法同名并且具有相同的功能

re.compile()函數(shù)也接受可選的標(biāo)志參數(shù),常用來(lái)實(shí)現(xiàn)不同的特殊功能和語(yǔ)法變更。這些標(biāo)志也可以作為參數(shù)適用于大多數(shù)re模塊函數(shù)。這些標(biāo)志可以用操作法(|)合并。

示例:

>>> import re>>> r1 = r'bugs'>>> r2 = re.compile(r1,re.I) # 這里選擇的是忽略大小寫(xiě)的標(biāo)志,完整的是re.IGNORECASE,這里簡(jiǎn)寫(xiě)re.I>>> r2.findall('BugsBunny')['Bugs']<br><br># re.S 使.匹配換行符在內(nèi)的所有字符<br># re.M 多行匹配,英雄^和$<br># re,X 用來(lái)使正則匹配模式組織得更加清晰
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浮山县| 尖扎县| 铅山县| 黄冈市| 凭祥市| 邹城市| 察隅县| 鄂托克旗| 静海县| 洪江市| 江陵县| 江津市| 兰州市| 文成县| 江油市| 临高县| 万全县| 崇文区| 石棉县| 栾城县| 乐清市| 手游| 钟祥市| 禄丰县| 霍林郭勒市| 疏勒县| 洛川县| 甘孜县| 科技| 阿尔山市| 田林县| 松滋市| 崇仁县| 仲巴县| 怀来县| 洪洞县| 柘荣县| 三门县| 松阳县| 林西县| 锡林浩特市|