首页 > 解决方案 > 如何通过python从字符串中提取十六进制值?

问题描述

下面是字符串寄存器地址 = [0x0128],数据 = [0x59]

我想通过使用正则表达式得到 0x59 而不是 0x0128

这是我的代码

import re
data = "Register addr = [0x0128], data = [0x59]"
pattern = re.compile("d[.]]")
re.findall(pattern, data)

我不知道得到确切的 0x59 你能帮我吗?

标签: pythonregex

解决方案


你可以做

data = "Register addr = [0x0128], data = [0x59]"
print(re.findall(r'(?<=data\s=\s)\[(\w*)\]',data))

输出

['0x59']

你也可以print(re.search(r'(?<=data\s=\s)\[(\w*)\]',data).group(1))

输出

请注意, re.search 仅返回第一个匹配项(在找到第一个匹配项后停止搜索。

0x59

推荐阅读