python正則表示式2
5.正則表示式的構造
1)字元組描述符 [....]: 與方括號中任意字元匹配
[abc]可以匹配a或者b或者c
區間形式:順序列出字串的形式 [0-9] 或者[a-z] [0-9a-zA-Z]匹配所有的數字與字母
特殊形式:[^.....]表示對^列出的字元求補 [^0-9]表示匹配非十進位制的字元
[^\t\r\n\v\f} 匹配所有非空白符
注意:如果要匹配^字元 則不能講^放在最前面 可以\^轉義或者放在中間 [\^] [0-9^a-z],如果需要匹配- ]則需 \- 或者\]
因為- ^ ]在字元組中屬於特殊功能的字元 就是在字元組中的^ - ]等需要加上轉義\
2)圓點字元(.)
圓點(.)是萬用字元 可以匹配任意字元
例如模式串:a..b 匹配以a開頭以b結尾的4位字串
3)通用字元組
\d 與十進位制匹配 [0-9]
\D 匹配非十進位制 [^0-9]
\s 與所有空白字元匹配 [\t\r\v\f\n]
\S 與所有非空白字元匹配[^\t\r\n\v\f]
\w 與所有的數字字母匹配 [0-9a-zA-Z]
\W 與非數字字母匹配 [^0-9a-zA-Z]
4)重複
重複描述符* 表示匹配0次或者任意多次
+ 至少一次匹配
\d+ 等價於 \d\d*
貪婪匹配:模式與字串中最長的子串匹配
非貪婪匹配(吝嗇匹配):模式與字串中最短的字串匹配
可選描述符(?):?是可選片段的描述符 'a?'表示與a匹配的字串0次或者1次重複匹配
'-?\d+'表示整數的字串 :
print re.match('-?\d+','-12').group(0)
重複次數描述符:確定次數的可以使用{n}描述 ' a{4}' 與a匹配的串4次重複
010-?[2-9][0-9]{7} 北京固話 表示以010頭 -可選 2-9的數字一個 加上7位數字
010-?表示-可選
(010-)?表示010可選
重複次數的範圍描述符:{m,n}
a{3,7} a重複3到7次
a{n}等價a{n,n}
a?等價於a{0,1}
a*等價於a{0,}
a+等價於a{1,}
5)選擇
選擇描述符|: a|b 如果與a或者b中一個匹配 則字串與a|b都匹配
a|b|c 可以看成是[abc]簡寫但是隻能用於單位元組
(ab)|(ac)|(ad)這些就不能使用字元組的方式描述
6)首尾描述符:
行首描述符^:以... 開頭的模式
re.match('^for','for a child')
行尾描述符$:以什麼結尾
re.match('child$,'for a child')