如何用unpack函数将十六进制字符转换为字节数组?
- 内容介绍
- 文章标签
- 相关推荐
本文共计321个文字,预计阅读时间需要2分钟。
我想要提取像这样的值:+ff0000+,并将其作为包含这些十六进制值的字节数组:+\xff\x00\x00+。我不清楚如何使用`str.unpack`来做这样的操作。以下是如何使用`re`模块和`bytes`对象的`hex()`方法来实现这一目标的示例代码:
pythonimport re
示例字符串text=我想要提取这样的值:+ff0000+,并将其作为包含这些十六进制值的字节数组:+\xff\x00\x00+。
使用正则表达式匹配十六进制颜色代码hex_pattern=re.compile(r'\+(\xff[0-9A-Fa-f]{6}\+)\+')
找到所有匹配项matches=hex_pattern.findall(text)
将匹配的字符串转换为字节hex_bytes=[bytes.fromhex(match[1:-1]) for match in matches]
输出结果for byte_array in hex_bytes: print(byte_array)
我想采取像这样的价值:ff0000
并使其成为包含这些十六进制值的字节数组:
\xff\x00\x00
我不清楚如何使用str.unpack这样做
"ff0000".scan(/../).map { |match| match.hex } #=> [255, 0, 0]
要么
("ff0000".scan(/../).map { |match| match.hex }).pack('C*') #=> "\377\000\000"
取决于您想要的格式.
本文共计321个文字,预计阅读时间需要2分钟。
我想要提取像这样的值:+ff0000+,并将其作为包含这些十六进制值的字节数组:+\xff\x00\x00+。我不清楚如何使用`str.unpack`来做这样的操作。以下是如何使用`re`模块和`bytes`对象的`hex()`方法来实现这一目标的示例代码:
pythonimport re
示例字符串text=我想要提取这样的值:+ff0000+,并将其作为包含这些十六进制值的字节数组:+\xff\x00\x00+。
使用正则表达式匹配十六进制颜色代码hex_pattern=re.compile(r'\+(\xff[0-9A-Fa-f]{6}\+)\+')
找到所有匹配项matches=hex_pattern.findall(text)
将匹配的字符串转换为字节hex_bytes=[bytes.fromhex(match[1:-1]) for match in matches]
输出结果for byte_array in hex_bytes: print(byte_array)
我想采取像这样的价值:ff0000
并使其成为包含这些十六进制值的字节数组:
\xff\x00\x00
我不清楚如何使用str.unpack这样做
"ff0000".scan(/../).map { |match| match.hex } #=> [255, 0, 0]
要么
("ff0000".scan(/../).map { |match| match.hex }).pack('C*') #=> "\377\000\000"
取决于您想要的格式.

