想在一行字符串中找出所有的非负整数,例如"+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']<_sre.SRE_Matchobject;span=(0,3),match='+14'><_sre.SRE_Matchobject;span=(0,3),match='+14'>['','','','+']详细问题:(1)按说line1和line2结果应该一样吧?(2)按说line2的第一个返回项,应该和第三行一样,是“+14”吧?为什么是“14”呢?(3)按说line4和line5的第一个返回结果一样都是“+14”吧?为什么出来是''空字符呢?网上找正则表达测试,我的正则表达都能输出我想要的结果,是python的问题吗?
Qyouu
相关分类