Python正则表达式混乱

时间:2015-04-04 05:09:02

标签: python regex

为什么我在python解释器中运行以下内容

re.findall(r'^-?[0-9]+$', "[50, 4]")

结果是[]?如果我没弄错的话,应该返回[50, 4]

1 个答案:

答案 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]