python正则表达式快速入门_Python学习笔记——正则表达式入门
標(biāo)簽:
# 本文對正則知識不做詳細(xì)解釋,僅作入門級的正則知識目錄。
正則表達(dá)式的強(qiáng)大早有耳聞,大一時(shí)參加一次選拔考試,題目就是用做個(gè)HTML解析器,正則的優(yōu)勢表現(xiàn)得淋漓盡致。題外話不多講,直接上干貨:
1. 元字符:
與之對應(yīng)的還有反義字符,大部分為小寫字母變大寫,例如\D表示匹配非數(shù)字的字符。
2. 重復(fù)(即匹配變長的字符串):
元字符可匹配單一的字符類型,若想匹配長度未知或長度限定的字符串需要在后邊加上限定符。
3. 范圍與分組:
有時(shí)元字符并不能滿足匹配字符的需求,這時(shí)就需要[]來圈定匹配范圍,例如要匹配一個(gè)只帶有a,s,d,f的單詞,可以用\b[asdf]\b;正則里面還有小括號用來表示分組,比如你想重復(fù)某幾個(gè)字符,就可以使用分組,例如(\d.\d){1,3}表示匹配小括號里的重復(fù)內(nèi)容一到三次。此外,小括號還可以用來后向引用等,此處不記。
4. 零寬斷言:
零寬斷言主要用來查找在某些斷言(指定內(nèi)容)之前或之后的內(nèi)容,例如(?=exp)匹配表達(dá)式exp前面出現(xiàn)的內(nèi)容(不匹配exp),(?<=exp)匹配表達(dá)式exp后面出現(xiàn)的內(nèi)容,還有負(fù)向零寬斷言等此處不記。
5. 貪婪與懶惰:
當(dāng)正則表達(dá)式中包含能接受重復(fù)的限定符時(shí),通常的行為是(在使整個(gè)表達(dá)式能得到匹配的前提下)匹配盡可能多的字符,即貪婪匹配。如表達(dá)式a.*b,搜索aabab的話,它會匹配整個(gè)字符串a(chǎn)abab。而懶惰匹配會匹配盡可能少的字符串,只需要在限定符后面加一個(gè)?,例如a.*?b會匹配aab(第一到第三個(gè)字符)和ab(第四到第五個(gè)字符)。
6. Python的re模塊:
python 提供re模塊,提供正則的所有功能。下面只記兩個(gè)方法和一個(gè)注意的地方。
6.1 match方法:
match()方法判斷是否匹配,如果匹配成功,返回一個(gè)Match對象,否則返回None。
1 >>> importre2 >>> re.match(r‘^\d{3}\-\d{3,8}$‘, ‘010-12345‘)3 <_sre.sre_match object at>
4 >>> re.match(r‘^\d{3}\-\d{3,8}$‘, ‘010 12345‘)5 >>>
如果正則表達(dá)式中定義了組,就可以在Match對象上用group()方法提取出子串來。注意到group(0)永遠(yuǎn)是原始字符串,group(1)、group(2)……表示第1、2、……個(gè)子串。使用groups()方法還可以得到所有子串。
6.2 split方法:
split()方法可切分子串,如下:
1 >>> re.split(r‘[\s\,\;]+‘, ‘a(chǎn),b;; c d‘)2 [‘a(chǎn)‘, ‘b‘, ‘c‘, ‘d‘]
6.3 關(guān)于轉(zhuǎn)義字符:
python轉(zhuǎn)義字符串也用\表示,所以正則表達(dá)式讀取時(shí)作為字符串出現(xiàn)時(shí)會被編譯器自動(dòng)去掉轉(zhuǎn)移字符的\,正則使用時(shí)就會出錯(cuò),所以推薦使用python的 r 前綴。
ps:
本文是對正則表達(dá)式的學(xué)習(xí)總結(jié),大部分知識來源于網(wǎng)上。下面給出兩個(gè)個(gè)人認(rèn)為比較好的鏈接:
1.http://www.jb51.net/tools/zhengze.html 對正則表達(dá)式介紹的比較詳細(xì),個(gè)人認(rèn)為要想深入學(xué)習(xí)正則表達(dá)式還是買本書比較好。
2.http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832260566c26442c671fa489ebc6fe85badda25cd000 來自廖雪峰大神的教程,結(jié)合python一起講,只是稍微短了一點(diǎn)。
標(biāo)簽:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python正则表达式快速入门_Python学习笔记——正则表达式入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以赚钱的手机游戏(中的备份和还原)
- 下一篇: python同时监听多个端口_pytho