我有一个文本文件,其中包含这样一行:
Component Sizing Information, AirTerminal:SingleDuct:VAV:Reheat, SPACE2-1 VAV REHEAT, Design Size Maximum Flow per Zone Floor Area during Reheat [m3/s-m2], 1.31927E-003
当数字前的语句为(仅举一个例子!)时,我想提取行(1.31927E-003)末尾的数字:
Design Size Maximum Flow per Zone Floor Area during Reheat [m3/s-m2]
事实上,文本文件中有几个关键语句,我需要分别提取紧跟其后的数字
你推荐什么样的库和方法?(使用python 3)。谢谢
重模块
Python有一个正则表达式模块,用于从文本中进行基于编程模式的提取
re是Python 3中的正则表达式模块
这是一种适用于特定情况的模式(但可能需要根据字符串的一致性进行更改)
图案
找出适合您的案例的模式-在您的案例中,我们可以确定以下内容:
您有一个可以重复0-9之间的整数的数字:
您有一个小数点:
您有一个数字字符串,其中包含字母
E
和连字符-
按顺序组合这些功能:
pattern = r'[0-9]+\.[0-9E-]+'
注意在许多正则表达式示例中,字符串前面的
r'...'
通常是r
表示原始字符串,可以更好地处理字符串中的潜在转义字符Python中的正则表达式
我们需要将其编译为regex(正则表达式)对象:
prog = re.compile(pattern)
findall
方法将返回所有字符串(不重叠)的列表-还有其他方法,如re.search
和re.match
具有其他特定输出:试验
学习正则表达式需要练习(以及良好的交互环境),例如regex101
如果所有行都相似,则可以拆分原始行并提取数字,如下所示:
相关问题 更多 >
编程相关推荐