1. 程式人生 > >Python最常用的正則表示式

Python最常用的正則表示式

正則表示式常用符號

 符號

 含義

 例子

匹配結果 

 *

 匹配前面的字元、子表示式或者括號裡的字元0次或多次

 a*b*

 aaaaaaaa,aaaaaabbbbb,bbbbbbbb

 +

 匹配前面的字元,子表示式或者括號裡的字元至少1次

 a+b+

 aaaaaab,aaabbbbb,abbbbbbb

 [ ]

 匹配任意一個字元(相當於任選一個)

 [A-Z]*

APPLE,CAPITALS,QWERTY 

 ( )

表示式編組(在正則表示式的規範裡編組會優先執行) 

 (a*b)*

aaaaab,abaaab,ababaaaaaab 

 {m,n}

匹配前面的字元,子表示式或者括號裡的字元m到n次(包含m或n) 

 a{2,3}b{2,3}

 aabbb,aaabbb,aabb

 [^]

 匹配任意一個不在中括號裡的字元

 [^A-Z]*

 apple,lowercase,qwerty

 |

 匹配任意一個由豎線分割的字元,子表示式(注意是豎線,不是大寫字母I)

 b(a|i|e)d

 bad,bid,bed

 .

 匹配任意單個字元(包括符號,數字,空格等)

 b.d

 bad,bzd,b$d,b d

 ^

 指字串開始位置的字元或子表示式

 ^a

 apple,asdf,a

 \

 轉義字元(把含有特殊意義的字元轉換成字面形式)

 \.\|\\

 .|\

 $

 經常用在正則表示式的末尾,表示“從字串的末端匹配”。如果不用它,每個

正則表示式實際都帶著“.*”模式,只會從字串開頭進行匹配,這個符號可以

看成是^符號的反義詞

 [A-Z]*[a-z]*$

 ABCabc,zzzyx,Bob

 ?!

 "不包含"。這個奇怪的組合通常放在字串或者正則表示式前面,表示字元

不能出現在目標字串裡。這個符號就比較難用,字元通常會在字串的不同

部位出現,如果要在整個字串中全部排除某個字元就加上^和&符號。

^((?![A-Z]).)*$

 no-caps-here,$ymb01s,a4e f!ne

以下的圖片來自於AstralWind的部落格,地址為返回主頁Python正則表示式指南 - AstralWind - 部落格園  http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html