Skip to main content
 首页 » 编程设计

python之从字符串中提取整数之包括负整数

2024年10月01日26dflying

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

string1 = "3x-2-44" 

我已经成功地用在字符串中找到的整数填充了一个列表;

L1 = (re.findall(r'\d+', string1)) 

'L1' 将包含所有整数的有用列表,但不会显示数字是否为负数,例如对于 'string1' L1 将包含

[3,2,44] 

而不是像这样的东西:

[3,-2,-44] 

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

请您参考如下方法:

你的正则表达式应该是这样的:

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