import re s = "1 -2*(60+(-40.35/5)-(-4*3))" # 获取所有数字 ret = re.findall(r"d+", s) print(ret) # ['1', '2', '60', '40', '35', '5', '4', '3'] # 小数不被拆分 针对小数 d+.d+ ret = re.findall(r"d+.d+|d+", s) print(ret) # ['1', '2', '60', '40.35', '5', '4', '3'] # 只要整数 不要小数 利用()组的优先性 ret = re.findall(r"d+.d+|(d+)", s) print(ret) # ['1', '2', '60', '', '5', '4', '3'] # 只能借助 列表的删除remove()操作 ret.remove('') print(ret) # ['1', '2', '60', '5', '4', '3']