我有一个文件in.txt
name="XYZ_PP_0" number="0x12" bytesize="4" info="0x0000001A"
name="GK_LMP_2_0" number="0xA5" bytesize="8" info="0x00000000bbae321f"
name="MP_LKO_1_0" number="0x356" bytesize="4" info="0x00000234"
我需要检查它是否满足检查如果info value的条件编号0x12"+ 0x00000004 =number="0x356"
. info值
如果匹配,打印结果值与给定的number="0x356"
信息值匹配。
我该怎么做?
这是当前尝试:
import re
pattern = r'(number="w+").*(info="w+")'
with open("in.txt", "rb") as fin:
for line in fin:
for match_number, match_info in re.findall(pattern, line):
,但这将简单地提取数字和信息值。
把它分成几个步骤。
- 查看如何逐行读取文本文件。您将得到该文件的行列表。
- 找出如何从"数字"中提取值;字段。我认为一个简单的正则表达式可以很好地为您服务。
- [可选]将此值转换为针对您的问题的正确数据类型。
- 做你感兴趣的比较。
我认为你可以很容易地谷歌所有这些语法。
编辑:在原始帖子中有任何代码之前发布。我已经不太确定问题是什么了。您需要调试帮助吗?
编辑2:再试一次,因为我认为你要求RegEx语法。
改变你的RegEx模式,在你想要提取的信息周围加上括号。这种模式的RegEx匹配将允许您将此括号内的值分配给Python变量。
参见这个部分示例。
import re
pattern = r'number=("w+").*info=("w+")'
s = 'name="XYZ_PP_0" number="0x12" bytesize="4" info="0x0000001A"'
m = re.search(pattern, s)
if m:
number, info = m.groups()
print("number is ", number)
print("info is", info)
# number is "0x12"
# info is "0x0000001A"