【问题标题】:Extracting integers from a string - including negative integers从字符串中提取整数 - 包括负整数
【发布时间】:2017-06-29 22:12:09
【问题描述】:

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

string1 = "3x-2-44"

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

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

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

[3,2,44]

而不是类似:

[3,-2,-44]

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

【问题讨论】:

  • r'\d+' => r'-?\d+'
  • 可以避免匹配浮点数吗?

标签: python regex list integer


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 1970-01-01
    • 2020-07-20
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    相关资源
    最近更新 更多