首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在字符串匹配后查找随机放置的数值

如何在字符串匹配后查找随机放置的数值
EN

Stack Overflow用户
提问于 2018-12-21 14:14:50
回答 1查看 62关注 0票数 0

我有一个文本文件如下:

代码语言:javascript
复制
GROSS WE GHT
MARKS AND NUMBERS:
PCS:
(KILO):
POW- 40162463
PAF. 128993.1
BOM
1 USTER QUANTUM 3
1.10
VIA MUMBAI
AIRPORT/INDIA
CO210044158

在这里,我想要的输出是使用regex和python打印"weight= 1.10kg“。

代码语言:javascript
复制
import re    
with open('file_new1.txt') as fd:    
for line in fd:    
    match = re.search(r'KILO', line)    
    if match:                
        print('found')

我在上面的文本文件中做了下面的代码来匹配KILO。我的问题是,在找到字符串'KILO‘之后,如何匹配数字1.10?请注意:

( 1) 1.10是样本权重,它也可以有值2322.00或其他整数值

( 2) 1.10总是发生在KILO之后,出现在新的行上。

( 3)字符串的值可以是KILO或KG。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-21 14:31:33

下面的循环循环文件,直到它看到一行包含KILOKG。它尝试将该行之后的每一行转换为浮点数,并在成功时返回该浮点数。

代码语言:javascript
复制
def get_weight(fp):
    next(line for line in fp if 'KILO' in line or 'KG' in line)
    for line in fp:
        try:
            return float(line)
        except ValueError:
            continue
    raise ValueError("No numeric line after 'KILO'")


with open('file_new1.txt') as fd:
    print(get_weight(fd))
    # 1.1

KILOKG的搜索是非常基本的,并且容易出现错误。如果您知道它总是以其他特征出现(例如,用圆括号括起来),则可能需要将这些特征包括在搜索中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53886238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档