本文首發自:喝醉的清茶 官方網址( http://blog.lovecathy.cn/arti...)以及微信公衆號「喝醉的清茶」 歡迎你們關注~
看到正則表達式,通常第一眼的感受,就是一串亂七八糟的看不懂的字符,沒啥依據能夠判斷,看起來很懵逼。python
其實主要是因爲對正則不太瞭解,當了解正則以後,會發現正則其實就是一串由一些特殊字符組成的有意義的一串,可是可讀性比較差,同時不容易理解正則表達式
本文意圖在於你們能夠看懂正則表達式,以及會書寫基本的正則表達式。微信
正則表達式是一種特殊的字符串模式,用於匹配一組字符串,就比如用模具作產品,而正則就是這個模具,定義一種規則去匹配符合規則的字符。spa
用d能夠匹配一個數字,w能夠匹配一個字母或數字,.能夠匹配任意字符code
例子:blog
'12\d' 能夠匹配''129',可是無法匹配'12B' '\d\d\d' 能夠匹配三個數字'000' '\w\w\d' 能夠匹配前兩個能夠是字符或者數字,第三個要是數字 'ab2'
要匹配變長的字符,在正則表達式中,字符串
用*表示任意個字符(包括0個),get
用+表示至少一個字符,產品
用?表示0個或1個字符,it
用{n}表示n個字符,
用{n,m}表示n-m個字符:
例子:
\d{4}\s+\w{3,6} \d{4} 匹配四個數字 \s+ 匹配至少一個空格 \w{3,6} 匹配3-8個數字或者字母
能夠用[]表示範圍
[0-9a-zA-Z\_]能夠匹配一個數字、字母或者下劃線; [0-9a-zA-Z\_]+能夠匹配至少由一個數字、字母或者下劃線組成的字符串,好比'a100','0_Z','Py3000'等等; [a-zA-Z\_][0-9a-zA-Z\_]*能夠匹配由字母或下劃線開頭,後接任意個由一個數字、字母或者下劃線組成的字符串,也就是Python合法的變量; [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精確地限制了變量的長度是1-20個字符(前面1個字符+後面最多19個字符)。 A|B能夠匹配A或B,因此(P|p)ython能夠匹配'Python'或者'python'。
^表示行的開頭,^d表示必須以數字開頭。
$表示行的結束,\d$表示必須以數字結束
特殊字符須要用 進行轉義
更多精彩內容,歡迎你們關注個人微信公衆號:喝醉的清茶