此次課程我們會(huì)系統(tǒng)的學(xué)習(xí)一下python的正則表達(dá)式,以及可以根據(jù)自己的需求寫(xiě)出正確的正則表達(dá)式。2學(xué)習(xí)此次課程,需要多久?15-20分鐘,建議每個(gè)表達(dá)式跟著實(shí)踐一下,加深印象3課程內(nèi)容 Python中正則表達(dá)式 在 re 模塊 — Regular expression operations Python中的re模塊提供與Perl類(lèi)似的正則表達(dá)式匹配操作,但是要注意的是:正則匹配時(shí) 表達(dá)式和要查詢(xún)的字符串可以是 unicode字符串,也可是8-bit 字符串,但是兩種模式不可以混合使用,也就是說(shuō) 表達(dá)式和要查詢(xún)的字符串必須一致。 正則表達(dá)式特殊字符: .(點(diǎn)): 默認(rèn)模式下,.可以匹配除了換行外的所有字符,如果需要匹配換行,可以傳參 re.DOTALL。 ![]() image 運(yùn)行結(jié)果: image ^:只匹配字符串的開(kāi)始位置,可以使用re.MULTILINE(匹配多行),匹配每一行的開(kāi)始位置。 ![]() image 代碼中每一行的開(kāi)頭都有ae字符串,所以開(kāi)啟多行模式后,會(huì)匹配兩個(gè)結(jié)果。 運(yùn)行結(jié)果: ![]() image $ : 與^相反,匹配字符串的結(jié)束位置,可以使用re.MULTILINE(匹配多行),匹配每一行的結(jié)尾位置。 ![]() image 運(yùn)行結(jié)果: ![]() image .: 匹配0個(gè)或多個(gè)的表達(dá)式 ![]() image 運(yùn)行結(jié)果: image 分析:c*表示,匹配字符'c'0次或者多次,也就是說(shuō)會(huì)匹配 a,ac。 +: 匹配1個(gè)或多個(gè)的表達(dá)式 ![]() image 運(yùn)行結(jié)果: image 分析:匹配字符a并且c一次或者多次,所以會(huì)匹配ac或者accccc ? : 匹配0次或1次,非貪婪方式 ![]() image 運(yùn)行結(jié)果: 分析:表達(dá)式“ac?” 匹配字符a或者ac(?只匹配0次或者1次,比較懶惰,不像上面的+或者*會(huì)匹配多次) .? : 這三個(gè)特殊符號(hào)上面都講過(guò)了,.是匹配任意字符匹配0次或者多次,連在一起使用也就是匹配全文了,加上?號(hào),非貪婪模式匹配,將盡可能少的匹配結(jié)果。 ![]() image 匹配結(jié)果: image 4小結(jié)正則匹配的語(yǔ)法是通用的,大家學(xué)會(huì)這些特殊字符,無(wú)論什么語(yǔ)言都能迅速入門(mén)。所以有必要好好學(xué)習(xí)一下。 |
|
來(lái)自: flyk0tcfb46p9f > 《AI》