python正則表達(dá)式中的括號(hào)匹配問(wèn)題
問(wèn)題:
m = re.findall('[0-9]*4[0-9]*', '[4]')
可以匹配到4.
m = re.findall('([0-9])*4([0-9])*', '[4]')
匹配不到4.
這是為什么呢?PS,這個(gè)是一個(gè)簡(jiǎn)化的說(shuō)明,我要用的正則比這個(gè)復(fù)雜,所以要用到(),表示一個(gè)序列的匹配。
補(bǔ)充一點(diǎn),我放在notepad++中用的時(shí)候,兩種寫(xiě)法都能匹配出來(lái),不知道為什么python中就不行了。
答案:
python的正則中用()會(huì)進(jìn)行匹配,所以返回結(jié)果是['',''],就是兩個(gè)()中的匹配。要想達(dá)到原來(lái)的匹配效果,就是把4匹配出來(lái),有兩種解決方法:
1.最外層加個(gè)大括號(hào),變成:m = re.findall('(([0-9])*4([0-9])*)', '[4]'),返回結(jié)果的第一個(gè)元素就是匹配結(jié)果了。
2.去除()的匹配結(jié)果返回,在括號(hào)前面加入?:,變成m = re.findall('(?:\d)*4(?:\d)*', '[4]'),返回結(jié)果就是要匹配的結(jié)果了。
相關(guān)文章
python數(shù)組過(guò)濾實(shí)現(xiàn)方法
這篇文章主要介紹了python數(shù)組過(guò)濾實(shí)現(xiàn)方法,涉及Python針對(duì)數(shù)組的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Django框架自定義模型管理器與元選項(xiàng)用法分析
這篇文章主要介紹了Django框架自定義模型管理器與元選項(xiàng)用法,結(jié)合實(shí)例形式分析了自定義模型管理器與元選項(xiàng)的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07Pandas中map(),applymap(),apply()函數(shù)的使用方法
本文主要介紹了Pandas中map(),applymap(),apply()函數(shù)的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別
這篇文章主要介紹了Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙可以參考一下2022-05-05Python 獲取圖片GPS等信息鎖定圖片拍攝地點(diǎn)、拍攝時(shí)間(實(shí)例代碼)
這篇文章主要介紹了Python 獲取圖片GPS等信息鎖定圖片拍攝地點(diǎn)、拍攝時(shí)間,先把圖片以二進(jìn)制的格式讀取出來(lái),然后通過(guò) exifread 庫(kù)把里面的 GPS 信息提取出來(lái),再以特定的格式打印出來(lái),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Python動(dòng)態(tài)配置管理Dynaconf的實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Python動(dòng)態(tài)配置管理Dynaconf實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07