python - 如何在 python 中使用 tail 按值拆分字符串

标签 python split

我正在尝试用 Python 解析 DNS 查询。包含两个查询的消息可能如下所示:

07example03org00TTCC13stackoverflow03com00TTCC

第一部分包含请求的域名,其中域名的每个部分之前是该部分具有的字符数(字节)。最后总是一个空字节。 T和C分别代表type和class,它们有固定的长度。 我想用空字节拆分一个包含这些消息的字符串。我可以执行 data.split('\x00'),但这会中断查询的其余部分。

['07example03org00', 'TTCC13stackoverflow03com00', 'TTCC']

我需要这个

['07example03org00TTCC', '13stackoverflow03com00TTCC']

但我只能使用查询的 00 部分,不能使用 TTCC

如何按值拆分字符串并将接下来的 4 个字节添加到之前的拆分部分?


编辑:正如 Padraic Cunningham 在评论中指出的那样,我不需要结果中的零。

最佳答案

根据您的示例(适本地替换定界符 - (?:\x00) 而不是 (?:00)),您可以使用:

>>> import re
>>> s = '07example03org00TTCC13stackoverflow03com00TTCC'
>>> re.findall('(.*?(?:00).{4})', s)
['07example03org00TTCC', '13stackoverflow03com00TTCC']

关于python - 如何在 python 中使用 tail 按值拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687029/

相关文章:

python - 将多元函数根的求根算法中的两个根之一括起来

python - 将 Excel 文件的第 n 行到 n+x 行加载到 python 中的数据框中,其中 n 和 x 是预定义的

python - 如何改进深度图以及我的立体图像缺少什么?

javascript - 拆分字符串并获取倒数第二个逗号

file - 如何根据行值拆分CSV文件

android - Python、Kivy 和 Android 游戏

python - 检查IP是否在Python中的CIDR范围内

C++ - 通过正则表达式分割字符串

r - 如何将数据框列拆分为两列

swift - 如何将 NSAttributedString 拆分为 NSAttributedString 数组