我一直在尝试提取随机生成的此类结构字符串中的整数;
string1 = "3x-2-44"
我已成功设法用字符串中的整数填充列表;
L1 = (re.findall(r'\d+', string1))
' L1'将包含所有整数的有用列表,但不显示该数字是否为负数,例如对于' string1' L1会举行
[3,2,44]
而不是像:
[3,-2,-44]
如何检索整数的前一个字符以确定其是正还是负?
答案 0 :(得分:2)
您的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]