我有以下8位十六进制字符串\x00\x13\xa2\x00@\n!\x1c
所需的输出是'\x00\x13\xA2\x00@\n!\x1C'
为此,我需要将所有字母都改为大写,除了a \
后面的字母
我试着把整个字符串做成大写字母,把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)
你根本不需要正则表达式。您可以只使用
str
函数将生成器表达式与join结合起来,它将为您解决问题
编辑
如果你想在前面加一个
\
例如:
相关问题 更多 >
编程相关推荐