python 正则search 所有_python之路----正则re(search,match,findall……)
關(guān)于python中非常強(qiáng)大的模塊之一-----re模塊,筆者也還只是一個(gè)初學(xué)者,記錄一下關(guān)于re下的各個(gè)子模塊是初步使用。
這里我就不介紹匹配語(yǔ)法了,說(shuō)一說(shuō)小括號(hào)(值|值)在幾個(gè)常用模塊中的作用(因?yàn)橛龅搅讼嚓P(guān)問(wèn)題)。
importre
a= 'python Python CDpython CDPython'result= re.search(r'(P|p)ython',a)
#運(yùn)行結(jié)果
通過(guò)以上結(jié)果,返回的結(jié)果是一個(gè)Match類(lèi),其中match為匹配結(jié)果,我們可以通過(guò)group()模塊來(lái)提取我們的結(jié)果,而且可以看到只返回了一個(gè)匹配結(jié)果,這是search的的匹配方式,開(kāi)始遍歷字符串,遇到匹配值直接返回。
importre
a = 'python Python CDpython CDPython'result = re.search(r'(P|p)ython',a)
#運(yùn)行結(jié)果
['p', 'P', 'p', 'P']
很奇怪findall為什么只返回了幾個(gè)字母,按照常理來(lái)說(shuō),不應(yīng)該返回Python或者python嗎?其實(shí)這就是findall與search等其他模塊不一樣的地方,首先f(wàn)indall返回的是一個(gè)列表,search和match返回的是一個(gè)Match類(lèi),之后,findall中的小括號(hào)是來(lái)定義具體匹配結(jié)果邊界,也就是findall返回的是小括號(hào)中的匹配對(duì)象,而不是整個(gè)單引號(hào)中的。
match與search又有一點(diǎn)點(diǎn)不同:
importre
a= 'abcpython Python CDpython CDPython'result= re.search(r'(P|p)ython',a)
#運(yùn)行結(jié)果
result1 = re.match(r'(P|p)ython',a)
print(result1)
#運(yùn)行結(jié)果
None
match是從字符串的第一個(gè)字符就開(kāi)始匹配,第一個(gè)字符不符合就直接跳出匹配,所以此處的匹配結(jié)果是None。
其他的待筆者遇到并處理了在更新吧!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python 正则search 所有_python之路----正则re(search,match,findall……)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: wifi协议栈_一文读懂米家部分智能硬件
- 下一篇: linux的python2.7的para