字符匹配

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

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

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

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

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

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

你能夠用補集來匹配不在區間範圍內的字符。其作法是把"^"做爲類別的首個字符;其它地方的"^"只會簡單匹配 "^"字符自己。例如,5 將匹配除 "5" 以外的任意字符。test

也許最重要的元字符是反斜槓"\"。 作爲 Python 中的字符串字母,反斜槓後面能夠加不一樣的字符以表示不一樣特殊意義。它也能夠用於取消全部的元字符,這樣你就能夠在模式中匹配它們了。舉個例子,若是你須要匹配字符 "[" 或 "\",你能夠在它們以前用反斜槓來取消它們的特殊意義: [ 或 \。字符集

一些用 "\" 開始的特殊字符所表示的預約義字符集一般是頗有用的,象數字集,字母集,或其它非空字符集。下列是可用的預設特殊字符:co

\d  匹配任何十進制數;它至關於類 [0-9]。
\D  匹配任何非數字字符;它至關於類 [^0-9]。
\s  匹配任何空白字符;它至關於類  [ \t\n\r\f\v]。
\S  匹配任何非空白字符;它至關於類 [^ \t\n\r\f\v]。
\w  匹配任何字母數字字符;它至關於類 [a-zA-Z0-9_]。
\W  匹配任何非字母數字字符;它至關於類 [^a-zA-Z0-9_]。

這樣特殊字符均可以包含在一個字符類中。如,[\s,.]字符類將匹配任何空白字符或","或"."。字符

本節最後一個元字符是 . 。它匹配除了換行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至能夠匹配換行。"." 一般被用於你想匹配「任何字符」的地方。數字

相關文章
相關標籤/搜索