繁体   English   中英

从字符串中提取空格分隔的数字

[英]Extract space separated numbers from string

所以我想从python中的字符串中提取总费率的数量。 假设我有这样的字符串:

str = "National Museum 4.6(1 686), Museum, Green Street 24/26, Some description, Closing: md.. 20:00"

我想提取 4.6 的费率和 1686 的总费率。我设法通过以下命令提取了 4.6:

rate = re.findall("\d{1}[.]\d{1,2}", str)
print(rate)
Out: ['4.6']

但是我对总费率有问题,因为有时该值可能是三位数,例如 386 没有任何空格,有时可能是 12 893,我们必须考虑它们之间的空格。

首先,请注意str是 Python 中的内置函数,您应该避免使用内置名称命名变量。

您可以使用括号中的特定格式提取数字

re.findall(r"\((\d{1,3}(?:\s\d{3})*)\)", text)

或者,使用re.search获取第一个匹配项:

m = re.search(r"\((\d{1,3}(?:\s\d{3})*)\)", text)
if m:
    print(m.group(1))

请参阅正则表达式演示 详情

  • \\( - a (字符
  • (\\d{1,3}(?:\\s\\d{3})*) - 第 1 组:
    • \\d{1,3} - 一位、两位或三位数字
    • (?:\\s\\d{3})* - 空格和三位数字出现零次或多次
  • \\) - a )字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM