如何在OptPasse中获取用户的输入?

2024-04-29 00:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件:

System Configuration Utility Version 14.1 Build 19
Copyright (c) 2017 Intel Corporation

System BIOS and FW Versions:
BIOS Version............. SE3.4

ME Firmware Version...... 2.01

BMC Version
 Op Code................. 1.2.7Q

SDR Version.............. SDR Package 0.1

我想将其捕获并存储在dict中:

d ={'BMC Version': '1.2.7Q',
    'SDR Version': '0.1',
    'ME Firmware Version': '2.01'
   }

如何使用regex和python实现它

现在我的方法是这样硬编码,但我不想硬编码:

SDR Package \d+.\d+

Tags: 文件buildpackage编码versionsystemconfigurationutility
1条回答
网友
1楼 · 发布于 2024-04-29 00:31:08

正则表达式

详情:

  • (?:)非捕获群
  • |
  • []匹配列表中的单个字符
  • +一次和无限次之间的匹配

Python代码

import re

d = {}
for match in re.findall(r'((?:ME Firmware|BMC|SDR) Version)\D+([0-9.A-Z]+)', text):
    d[match[0]] = match[1]

输出:

{'ME Firmware Version': '2.01', 'BMC Version': '1.2.7Q', 'SDR Version': '0.1'}

Code demo

相关问题 更多 >