1. 程式人生 > >python正則表示式2

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')