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+'
是否存在要避免匹配的浮点数?