python - 如何通过python从字符串中提取十六进制值?
问题描述
下面是字符串寄存器地址 = [0x0128],数据 = [0x59]
我想通过使用正则表达式得到 0x59 而不是 0x0128
这是我的代码
import re
data = "Register addr = [0x0128], data = [0x59]"
pattern = re.compile("d[.]]")
re.findall(pattern, data)
我不知道得到确切的 0x59 你能帮我吗?
解决方案
你可以做
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
推荐阅读
- react-hooks - 在反应打字稿中使用 fetch 加载 products.json 文件
- flutter - 离开地图屏幕时禁用定位服务 (Flutter )
- javascript - 选择数据列表中的值后不显示占位符文本
- sql - 为什么 WHERE 子句中的 FIRST_VALUE 和 EXISTS 语句不过滤行?
- core-ui - 为什么在注释掉 coreui.bundle.min.js 后所有菜单都被禁用?
- css - [CSS][Youtube to OBS] 有没有办法忽略自定义消息/用户在流屏幕聊天中显示?
- kubernetes - 删除 Kuma 网格(独立 k8s 安装)
- r - 使用 rep 和 seq 的模式
- javascript - 将新子对象添加到嵌套状态对象
- android - android refrofit kotlin 从 api 获取 json 什么都不做