想在一行字符串中找出所有的非負整數,例如"+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輸出結果:['+14','0','10','+3']['14','0','10','+3']['','','','+']詳細問題:(1)按說line1和line2結果應該一樣吧?(2)按說line2的第一個返回項,應該和第三行一樣,是“+14”吧?為什么是“14”呢?(3)按說line4和line5的第一個返回結果一樣都是“+14”吧?為什么出來是''空字符呢?網上找正則表達測試,我的正則表達都能輸出我想要的結果,是python的問題嗎?
正則表達,re.findall函數第一項與re.search的match結果不同,求教?
慕標琳琳
2019-05-23 11:24:23