【发布时间】:2015-01-17 11:35:48
【问题描述】:
我有以下 8 位十六进制字符串 \x00\x13\xa2\x00@\n!\x1c
所需的输出是'\x00\x13\xA2\x00@\n!\x1C'
我需要将所有字母更改为大写字母,\ 后面的字母除外
我试图通过将整个字符串变成 Caps 并将 N 和 X 的小写来做到这一点,但这远非理想
import re
mysourceaddrlong = ( repr(data['source_addr_long'])[1:-1] )
输出\x00\x13\xa2\x00@\n!\x1c
mysourceaddrlongUPPERCASE = mysourceaddrlong.upper()
mysourceaddrlongFIXED = re.sub('[XN]+', lambda m: m.group(0).lower(), mysourceaddrlongUPPERCASE)
【问题讨论】:
-
你试过了吗?如果是,请添加一些代码:)
-
这与 XBee 有什么关系?还是使用“十六进制”?
-
mysourceaddrlong = \x00\x13\xa2\x00@\n!\x1c不是 python 兄弟 -
\x00\x13\xa2\x00@\n!\x1c 是我想与之交谈的 xbee 的十六进制地址,也就是接收 xbee 的 dest_addr_long。
-
尝试在反斜杠上拆分,将每个元素转换为
xXXXX并使用反斜杠分隔重新组装。