为什么我在python解释器中运行以下内容
re.findall(r'^-?[0-9]+$', "[50, 4]")
结果是[]
?如果我没弄错的话,应该返回[50, 4]
。
答案 0 :(得分:2)
您正在使用^...$
。它们表示字符串的开头和结尾。所以,你实际上是在试图找出整个字符串(从开头到结尾)是否都是数字。只需放下它们就可以得到你想要的东西
>>> re.findall(r'-?[0-9]+', "[50, 4, -123]")
['50', '4', '-123']
如果您想将所有这些转换为实际数字,请将int
函数应用于列表推导,如下所示
>>> [int(num) for num in re.findall(r'-?[0-9]+', "[50, 4, -123]")]
[50, 4, -123]