Python 从字符串中提取整数-包括负整数

Python 从字符串中提取整数-包括负整数,python,regex,list,integer,Python,Regex,List,Integer,我一直在尝试提取这种结构的随机生成字符串中的整数 string1 = "3x-2-44" 我成功地用字符串中的整数填充了一个列表 L1 = (re.findall(r'\d+', string1)) “L1”将保留所有整数的有用列表,但不显示数字是否为负数,例如“string1”L1将保留 [3,2,44] 而不是像: [3,-2,-44] 如何才能同时检索整数的前一个字符以确定其为正还是为负?您的regex应该如下所示: >>> import re >>&

我一直在尝试提取这种结构的随机生成字符串中的整数

string1 = "3x-2-44"
我成功地用字符串中的整数填充了一个列表

L1 = (re.findall(r'\d+', string1))
“L1”将保留所有整数的有用列表,但不显示数字是否为负数,例如“string1”L1将保留

[3,2,44]
而不是像:

[3,-2,-44]

如何才能同时检索整数的前一个字符以确定其为正还是为负?

您的
regex
应该如下所示:

>>> import re
>>> string1 = "3x-2-44"

#                v for matching zero or one occurrence of `-` in string  
>>> re.findall('-?\d+', string1)
['3', '-2', '-44']
要将提取的数字字符串转换为
int
,您可以使用
map
作为:

>>> list(map(int, re.findall('-?\d+', string1)))
[3, -2, -44]

r'\d+'
=>
r'-?\d+'
是否存在要避免匹配的浮点数?