Python正则表达式混乱

Python正则表达式混乱,python,regex,Python,Regex,为什么当我在python解释器中运行以下命令时 re.findall(r'^-?[0-9]+$', "[50, 4]") 我得到的结果是[]?如果我没有弄错的话,这应该返回您正在使用的^…$。它们意味着字符串的开始和结束。因此,您实际上是在试图找出整个字符串(从开始到结束)是否充满了数字。只要放下它们,你就会得到你想要的 >>> re.findall(r'-?[0-9]+', "[50, 4, -123]") ['50', '4', '-123'] 如果您想将它们全部转换为

为什么当我在python解释器中运行以下命令时

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

我得到的结果是
[]
?如果我没有弄错的话,这应该返回您正在使用的
^…$
。它们意味着字符串的开始和结束。因此,您实际上是在试图找出整个字符串(从开始到结束)是否充满了数字。只要放下它们,你就会得到你想要的

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

那么这个
ast.literal\u eval([50,4])
呢?这四个字一针见血。这就是为什么我使用正则表达式而不是literalval。