我一直在尝试提取随机生成的此类结构字符串中的整数;
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]
