比較詳細Python 正則表達式操作指南(re使用) – 煎炸熊の記事本 | python re compile用法
Source:比較詳細Python正則表達式操作指南(re使用)_python_腳本之家[1]Python自1.5版本起增加了re模塊,它提供Perl風格的正則表達式模式。Python1.5之前版本則是通過regex模塊提供Emecs風格的模式。Emacs風格模式可讀性稍差些,而且功能也不強,因此編寫新代碼時儘量不要再使用regex模塊,當然偶爾你還是可能在老代碼裡發現其蹤影。就其本質而言,正則表達式(或RE)是一種小型的、高度專業化的編程語言,(在Python中)它內嵌在Python中,並通過re模塊實現。使用這個小型語言,你可以為想要匹配的相應字符串集指定規則;該字符串集可...
Source: 比較詳細Python正則表達式操作指南(re使用)_python_腳本之家[1]
Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。Python 1.5之前版本則是通過 regex 模塊提供 Emecs 風格的模式。Emacs 風格模式可讀性稍差些,而且功能也不強,因此編寫新代碼時儘量不要再使用 regex 模塊,當然偶爾你還是可能在老代碼裡發現其蹤影。
就其本質而言,正則表達式(或 RE)是一種小型的、高度專業化的編程語言,(在Python中)它內嵌在Python中,並通過 re 模塊實現。使用這個小型語言,你可以為想要匹配的相應字符串集指定規則;該字符串集可能包含英文語句、e-mail地址、TeX命令或任何你想搞定的東 西。然後你可以問諸如「這個字符串匹配該模式嗎?」或「在這個字符串中是否有部分匹配該模式呢?」。你也可以使用 RE 以各種方式來修改或分割字符串。
正則表達式模式被編譯成一系列的字節碼,然後由用 C 編寫的匹配引擎執行。在高級用法中,也許還要仔細留意引擎是如何執行給定 RE ,如何以特定方式編寫 RE 以令生產的字節碼運行速度更快。本文並不涉及優化,因為那要求你已充分掌握了匹配引擎的內部機制。
正則表達式語言相對小型和受限(功能有限),因此並非所有字符串處理都能用正則表達式完成。當然也有些任務可以用正則表達式完成,不過最終 表達式會變得異常複雜。碰到這些情形時,編寫 Python 代碼進行處理可能反而更好;儘管 Python 代碼比一個精巧的正則表達式要慢些,但它更易理解。
簡單模式
我們將從最簡單的正則表達式學習開始。由於正則表達式常用於字符串操作,那我們就從最常見的任務:字符匹配 下手。有關正則表達式底層的計算機科學上的詳細解釋(確定性和非確定性有限自動機),你可以查閱編寫編譯器相關的任何教科書。
字符匹配
大多數字母和字符一般都會和自身匹配。例如,正則表達式 test 會和字符串「test」完全匹配。(你也可以使用大小寫不敏感模式,它還能讓這個 RE 匹配「Test」或「TEST」;稍後會有更多解釋。)
...