Python 24天 正則表達式
正則表達式是對字符串操作的一種邏輯公式. 我們一般使用正則表達式對字符串進行匹配和過濾.
由普通字符和元字符組成
元字符:
1)字符組: 用[] 括起來的內容會被匹配 逐個匹配
2)簡單元字符:
. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下劃線
\s 匹配任意的空白符
\d 匹配數字
\n 匹配一個換行符
\t 匹配一個制表符
\b 匹配一個單詞的結尾
^ 匹配字符串的開始
$ 匹配字符串的結尾
\W 匹配非字母或數字或下劃線
\D 匹配非數字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括號內的表達式,也表示一個組
[...] 匹配字符組中的字符
[^...] 匹配除了了字符組中字符的所有字符
3)量詞
一次性匹配很多個字符
* 重復零次或更多次
+ 重復一次或更多次
? 重復零次或一次
{n} 重復n次
{n,} 重復n次或更多次
{n,m} 重復n到m次
4)惰性匹配和貪婪匹配
在量詞中 * + {} 都屬於貪婪匹配 可以盡可能所得得到結果
str: 麻花藤昨天讓英雄聯盟關服了
reg: 昨天.* 匹配的是:昨天讓英雄聯盟關服了
.*? 表示惰性匹配 盡可能少的匹配
.*?x的特殊含義 找到下一個x為止.
5)分組
在正則中使用()分組
身份證匹配: ^[1-9]\d{14}(\d{2}[0-9X])?$ 新舊都可以
手機號 : ^(13|17|15|18)\d{9}
生日 :^(1\d{3}|20\d{2})-(((01|0[3-9]|[10-12])-(1[0-9]|2[0-9]|3[0-1]))|(02-(1[0-9]|2[0-9])))
Python 24天 正則表達式