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

首頁 > 編程 > Python > 正文

比較詳細Python正則表達式操作指南(re使用)

2020-02-23 04:40:26
字體:
來源:轉載
供稿:網友
就其本質而言,正則表達式(或 RE)是一種小型的、高度專業化的編程語言,(在Python中)它內嵌在Python中,并通過 re 模塊實現。使用這個小型語言,你可以為想要匹配的相應字符串集指定規則;該字符串集可能包含英文語句、e-mail地址、TeX命令或任何你想搞定的東西。然後你可以問諸如“這個字符串匹配該模式嗎?”或“在這個字符串中是否有部分匹配該模式呢?”。你也可以使用 RE 以各種方式來修改或分割字符串。


正則表達式模式被編譯成一系列的字節碼,然後由用 C 編寫的匹配引擎執行。在高級用法中,也許還要仔細留意引擎是如何執行給定 RE ,如何以特定方式編寫 RE 以令生產的字節碼運行速度更快。本文并不涉及優化,因為那要求你已充分掌握了匹配引擎的內部機制。


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

簡單模式

我們將從最簡單的正則表達式學習開始。由于正則表達式常用于字符串操作,那我們就從最常見的任務:字符匹配 下手。


有關正則表達式底層的計算機科學上的詳細解釋(確定性和非確定性有限自動機),你可以查閱編寫編譯器相關的任何教科書。

字符匹配

大多數字母和字符一般都會和自身匹配。例如,正則表達式 test 會和字符串“test”完全匹配。(你也可以使用大小寫不敏感模式,它還能讓這個 RE 匹配“Test”或“TEST”;稍後會有更多解釋。)

這個規則當然會有例外;有些字符比較特殊,它們和自身并不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 RE 其它部分的重復次數。本文很大篇幅專門討論了各種元字符及其作用。

這里有一個元字符的完整列表;其含義會在本指南馀下部分進行討論。

. ^ $ * + ? { [ ] / | ( )

我們首先考察的元字符是"[" 和 "]"。它們常用來指定一個字符類別,所謂字符類別就是你想匹配的一個字符集。字符可以單個列出,也可以用“-”號分隔的兩個給定字符來表示一個字符區間。例如,[abc] 將匹配"a", "b", 或 "c"中的任意一個字符;也可以用區間[a-c]來表示同一字符集,和前者效果一致。如果你只想匹配小寫字母,那幺 RE 應寫成 [a-z].

元字符在類別里并不起作用。例如,[akm$]將匹配字符"a", "k", "m", 或 "$" 中的任意一個;"$"通常用作元字符,但在字符類別里,其特性被除去,恢復成普通字符。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长顺县| 科尔| 赣州市| 五华县| 波密县| 遵义县| 毕节市| 正阳县| 瑞昌市| 洪雅县| 临潭县| 兰溪市| 泉州市| 永修县| 汽车| 富川| 衢州市| 麟游县| 乌拉特中旗| 托克托县| 周口市| 阿拉善盟| 潞西市| 灌云县| 华宁县| 巴马| 建水县| 南平市| 哈尔滨市| 措勤县| 双牌县| 梅河口市| 颍上县| 天长市| 甘孜县| 石首市| 湾仔区| 旬阳县| 白水县| 道孚县| 绥宁县|