Python 删除字节串中某个字符之前的所有内容

Python remove everything in bytestring before certain character

我有以下字节串 b'removethis\x00\x002020.10.14\x00\xf2\x00^\n\x84>\x01\x00\x10\x01\x14\x00\x00\x00\x8d\xec\xdc0\x1bo\xe7\x15^\n\x84>\x01\x00\x10\x01\x04\x9b_\x18'

我想删除第一个 \x00 之前的所有内容,以便子字符串 removethis 基本上被删除。

所以问题是我只想删除第一个 \x00 之前的所有内容,而不是字符串中可能出现的任何未来 \x00,我不确定如何执行此操作。

您可以为此构建一个正则表达式。

import re

txt = "b'removethis\x00\x002020.10.14\x00\xf2\x00^\n\x84>\x01\x00\x10\x01\x14\x00\x00\x00\x8d\xec\xdc0\x1bo\xe7\x15^\n\x84>\x01\x00\x10\x01\x04\x9b_\x18'"
x = re.search("\x00.*", txt)
print(x)

在这里我们找到第一次出现的 \x00 然后使用 .* 将所有内容都带到字符串的末尾。结果是你的字符串减去 'removethis'