正則表達式自己也和python沒有什麼關係,就是匹配字符串內容的一種規則。python
官方定義:正則表達式是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。正則表達式
一說規則我已經知道你很暈了,如今就讓咱們先來看一些實際的應用。在線測試工具 http://tool.chinaz.com/regex/工具
首先你要知道的是,談到正則,就只和字符串相關了。在我給你提供的工具中,你輸入的每個字都是一個字符串。
其次,若是在一個位置的一個值,不會出現什麼變化,那麼是不須要規則的。
好比你要用"1"去匹配"1",或者用"2"去匹配"2",直接就能夠匹配上。這連python的字符串操做均可以輕鬆作到。
那麼在以後咱們更多要考慮的是在同一個位置上能夠出現的字符的範圍。
字符:x測試
含義:表明的是字符xspa
例如:匹配規則爲 "a",那麼須要匹配的字符串內容就是 」a」字符串
字符:\\get
含義:表明的是反斜線字符'\'it
例如:匹配規則爲"\\" ,那麼須要匹配的字符串內容就是 」\」測試工具
字符:\tco
含義:製表符
例如:匹配規則爲"\t" ,那麼對應的效果就是產生一個製表符的空間
字符:\n
含義:換行符
例如:匹配規則爲"\n",那麼對應的效果就是換行,光標在原有位置的下一行
字符:\r
含義:回車符
例如:匹配規則爲"\r" ,那麼對應的效果就是回車後的效果,光標來到下一行行首
字符類:[abc]
含義:表明的是字符a、b 或 c
例如:匹配規則爲"[abc]" ,那麼須要匹配的內容就是字符a,或者字符b,或字符c的一個
字符類:[^abc]
含義:表明的是除了 a、b 或 c之外的任何字符
例如:匹配規則爲"[^abc]",那麼須要匹配的內容就是否是字符a,或者不是字符b,或不是字符c的任意一個字符
字符類:[a-zA-Z]
含義:表明的是a 到 z 或 A 到 Z,兩頭的字母包括在內
例如:匹配規則爲"[a-zA-Z]",那麼須要匹配的是一個大寫或者小寫字母
字符類:[0-9]
含義:表明的是 0到9數字,兩頭的數字包括在內
例如:匹配規則爲"[0-9]",那麼須要匹配的是一個數字
字符類:[a-zA-Z_0-9]
含義:表明的字母或者數字或者下劃線(即單詞字符)
例如:匹配規則爲" [a-zA-Z_0-9] ",那麼須要匹配的是一個字母或者是一個數字或一個下滑線
預約義字符類:.
含義:表明的是任何字符
例如:匹配規則爲" . ",那麼須要匹配的是一個任意字符。若是,就想使用 . 的話,使用匹配規則"\\."來實現
預約義字符類:\d
含義:表明的是 0到9數字,兩頭的數字包括在內,至關於[0-9]
例如:匹配規則爲"\d ",那麼須要匹配的是一個數字
預約義字符類:\w
含義:表明的字母或者數字或者下劃線(即單詞字符),至關於[a-zA-Z_0-9]
例如:匹配規則爲"\w ",,那麼須要匹配的是一個字母或者是一個數字或一個下滑線
邊界匹配器:^
含義:表明的是行的開頭
例如:匹配規則爲^[abc][0-9]$ ,那麼須要匹配的內容從[abc]這個位置開始, 至關於左雙引號
邊界匹配器:$
含義:表明的是行的結尾
例如:匹配規則爲^[abc][0-9]$ ,那麼須要匹配的內容以[0-9]這個結束, 至關於右雙引號
邊界匹配器:\b
含義:表明的是單詞邊界
例如:匹配規則爲"\b[abc]\b" ,那麼表明的是字母a或b或c的左右兩邊須要的是非單詞字符([a-zA-Z_0-9])
數量詞:X?
含義:表明的是X出現一次或一次也沒有
例如:匹配規則爲"a?",那麼須要匹配的內容是一個字符a,或者一個a都沒有
數量詞:X*
含義:表明的是X出現零次或屢次
例如:匹配規則爲"a*" ,那麼須要匹配的內容是多個字符a,或者一個a都沒有
數量詞:X+
含義:表明的是X出現一次或屢次
例如:匹配規則爲"a+",那麼須要匹配的內容是多個字符a,或者一個a
數量詞:X{n}
含義:表明的是X出現剛好 n 次
例如:匹配規則爲"a{5}",那麼須要匹配的內容是5個字符a
數量詞:X{n,}
含義:表明的是X出現至少 n 次
例如:匹配規則爲"a{5, }",那麼須要匹配的內容是最少有5個字符a
數量詞:X{n,m}
含義:表明的是X出現至少 n 次,可是不超過 m 次
例如:匹配規則爲"a{5,8}",那麼須要匹配的內容是有5個字符a 到 8個字符a之間