python正則表達式學習筆記(上)

這學期課程涉及python,所以正在快速過一遍基礎內容。現將整理的部分筆記發上來一遍自己和大家隨時觀看,因爲瀏覽的是英文slides,所以可能有錯誤,還望大家不吝賜教。

Regular Expression Syntax
.  :本行內任意的單個字符,除了換行符
\d 匹配一個數字字符。等價於 [0-9]。
\D 匹配一個非數字字符。等價於 [^0-9]。
\s 匹配任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。
\w 匹配包括下劃線的任何單詞字符。等價於'[A-Za-z0-9_]'。
\W 匹配任何非單詞字符。等價於 '[^A-Za-z0-9_]'。


^ : 匹配字符串的開頭


$ :匹配字符串的結尾,比如“fu$”只能匹配到“fu”,而“fu”可以匹配到“fun”和“fuck”


*:放在限定內容後面,表示有0個或多個,比如“ab*”可以匹配到a,ab,abb,abbb


+:放在限定內容後面,表示有1個或多個,比如“ab+”可以匹配到ab,abb,abbb


? :放在限定內容後面,表示有0個或1個,比如“ab*”可以匹配到a,ab


|  意思是or  比如 apple|orange 則可以匹配到apple 或者orange


r”” 則“”裏面的所有內容保持原意,比如r”\\xxoo”則保持\\xxoo




*?,+?,??
平時*,+以及?都是貪婪(Greedy strategy)策略,將會匹配越長越好,然而有時並不想用貪婪策略,則放一個?在後面控制。
{m} 這前面放需要匹配的元素a,則表示匹配m個a,比如a{2},則只會匹配aa,而不會匹配a,aaa
{m,n}這前面放元素a,則表示匹配m到n個a,比如a{2,4},則可以匹配到aa,aaa,aaaa
[] 類似數組,比如[abc]將會匹配a或者b或者c    [a-z]將會匹配從a到z的任意字符
[a-zA-Z0-9] 匹配任何字母及數字。 [^aeiou] 除了aeiou字母以外的所有字符。 [^0-9] 匹配除了數字外的字符


\ 轉譯, 比如\\將會匹配\   \*將會匹配* 而\\\\將會匹配\\   \*\!將會匹配*!而不是*\!
需要注意的case:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章