![](/img/trans.png)
[英]How to extract the hex value from this data type? - Python cantools
[英]how to extract hex value from string by 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
如果您只想找到0x59
只需直接搜索即可。
pattern = re.compile(r"0x59")
如果要查找位于[]
所有以0x
hex
代码
pattern = re.compile(r"\[0x.*?\]")
re.findall(pattern, data)
#['[0x0128]', '[0x59]']
最简单的方法是通过:
print(re.sub(']', '', data.partition("data = [")[2]))
.partition
在data = [
上拆分字符串,给出一个元组 & [2]
选择data = [
之后的字符串部分。
re.sub
从该字符串中删除所有]
。
请注意,0x59 和 0x0128 都是有效的十六进制数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.