如何找到字符串和float/int的特定组合



我有以下问题。作为输入,我有一个日期名称,它必须有特定的命名法,比如

  1. 足球场_01_CampNou108m_Length_68.5_宽度
  2. 足球场_02_Bernabeau105m_长度_68.5_宽度

对于宽度,缺少仪表。但我不能更改名称,必须处理此问题。我现在的任务是编写一个代码,只从数据名称中提取长度和宽度来计算其上的面积。我有几个想法,但这些想法很容易出错,而且不够健壮。我现在的想法是基于知道我有一个整数值(长度(和一个浮点值(宽度(。我想写一个代码,在字符串中找到浮点值和整数值,并将它们分配给宽度和长度,但我找不到任何方法,有人能帮我吗?

似乎可以使用regex来解决此任务:

import re
//somehow get the input_list
for entry in input_list:
match = re.match(r"w+_d+_w+_(d+)m_Length_(([0-9]*[.])?[0-9]+)_Width", entry)
length, width, _ = match.groups()
length = int(length)
width = float(width)

关于正则表达式的更多细节:

  • w+匹配字母字符
  • d+匹配数字
  • __完全匹配
  • 围绕某个正则表达式的()捕获要返回的值
  • (([0-9]*[.])?[0-9]+)捕获浮点部分,如这里所解释的浮点数的正则表达式

https://regex101.com/r/8BOvMh/1在线工作示例

最新更新