re.sub公司用字符串替换十六进制

2024-06-28 14:59:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含要转换为字符串的十六进制数的文件:

'\x73\x63\x6f\x72\x65\x73': '\x4c\x6f\x72\x65\x6d\x20\x69\x70\x73\x75\x6d',
'Status', ['\x75\x70\x64\x61\x74\x65']  

但是当使用re.sub公司要用ascii表示法替换每次出现的十六进制转义数,它似乎不会首先找到十六进制数。
我试过使用原始字符串,但没有改变任何东西。我还是换不掉。在

^{pr2}$

Tags: 文件字符串statusx64x6fx65x69x75
1条回答
网友
1楼 · 发布于 2024-06-28 14:59:55

您可以使用以下代码片段

import re, binascii
with open('hex.txt', 'r') as f:
    file = f.read()
    hexList = re.findall(r'((?:\\x[0-9a-f][0-9a-f])+)', file)

    for item in hexList:
        file = re.sub(r"('{}')".format(item.replace('\\', '\\\\')), str(binascii.unhexlify(item.replace('\\x', ''))), file)
    print(file)

用于查找十六进制字符串的regex是错误的,因为它甚至将Status作为十六进制字符串。在

相关问题 更多 >