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