gpt4 book ai didi

python - 拆分字符串上的多个匹配项

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:44 25 4
gpt4 key购买 nike

我在 Python 中对十六进制字符串使用 split() 函数。该字符串包含一个我想拆分的标记 (0xffffffffffffffff)。在这个标记之后是十六进制数据。十六进制字符串中可以有多个“标记”。

现在我发现当我的第一个数据字符串以“ff”结尾并且下一个标记紧随其后时出现问题(这种情况不常发生,但确实会发生)。

有没有办法拆分“右绑定(bind)”?

0a 0b 0c 0d 0e 0f ff ff ff ff ff ff ff ff 0a 0b 0c ...

在这种情况下,我希望字符串拆分如下:

0a 0b 0c 0d 0e 0f ->ff ff ff ff ff ff ff ff<- 0a 0b 0c ...

但它是这样拆分的:

0a 0b 0c 0d 0e 0 ->f ff ff ff ff ff ff ff f-> f 0a 0b 0c ...

知道如何在 python 中实现它吗?

当前代码非常简单:

a = "0a0b0c0d0e0fffffffffffffffff0a0b0c"
list = a.split("ffffffffffffffff")

[0]: 0a0b0c0d0e0
[1]: f0a0b0c

但应该是:

[0]: 0a0b0c0d0e0f
[1]: 0a0b0c

最佳答案

您可以将您的字符串转换为bytes/bytearray 并将其拆分

In [2]: b = bytes.fromhex(s).split(b'\xff'*8)

In [3]: b
Out[3]: [b'\n\x0b\x0c\r\x0e\x0f', b'\n\x0b\x0c']

然后将列表的每个元素转换回str

In [4]: [x.hex() for x in b]
Out[4]: ['0a0b0c0d0e0f', '0a0b0c']

关于python - 拆分字符串上的多个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38121082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com