想在一行字符串中找出所有的非負(fù)整數(shù),例如"+14010-5+3"中的+14,0,10,+3。但不返回-5or5。代碼如下:print(re.findall(r"(\+\d+|[^-]\d+|[0]+)","+14010-5+3"))#line1print(re.findall(r"[^-](\+\d+|\d+|[0]+)","+14010-5+3"))#line2print(re.search(r"[^-](\+\d+|\d+|[0]+)","+14010-5+3"))#line3print(re.search(r"[^-](\+)?\d+","+14010-5+3"))#line4print(re.findall(r"[^-](\+)?\d+","+14010-5+3"))#line5輸出結(jié)果:['+14','0','10','+3']['14','0','10','+3']['','','','+']詳細(xì)問(wèn)題:(1)按說(shuō)line1和line2結(jié)果應(yīng)該一樣吧?(2)按說(shuō)line2的第一個(gè)返回項(xiàng),應(yīng)該和第三行一樣,是“+14”吧?為什么是“14”呢?(3)按說(shuō)line4和line5的第一個(gè)返回結(jié)果一樣都是“+14”吧?為什么出來(lái)是''空字符呢?網(wǎng)上找正則表達(dá)測(cè)試,我的正則表達(dá)都能輸出我想要的結(jié)果,是python的問(wèn)題嗎?
正則表達(dá),re.findall函數(shù)第一項(xiàng)與re.search的match結(jié)果不同,求教?
慕標(biāo)琳琳
2019-05-23 11:24:23