gpt4 book ai didi

python : seperate particular string from group of strings

转载 作者:行者123 更新时间:2023-12-01 04:35:43 29 4
gpt4 key购买 nike

我正在研究 GPS 跟踪器。跟踪器发送一些数据包。每个数据包以起始位(7878)和停止位(0d0a)开始。有时我收到一组数据包。我想将这些数据包分开。我使用下面的代码来分割两个字符。

data='78780a1301000400020017e73c0d0a787825260f071a0b050ac70165eaf0089b626021052e09019428139100fa7108000403020004a4810d0a78780a1301000409020016e73c0d0a'
splt_data= [data[i:i+2] for i in range(0, len(data), 2)]

我想要像下面这样的

78780a1301000400020017e73c0d0a
787825260f071a0b050ac70165eaf0089b626021052e09019428139100fa7108000403020004a4810d0a
78780a1301000409020016e73c0d0a

如果“0a或0d或78或”不在起始位和停止位之间,我可以拆分这些数据包。如果有可能获得起始位或停止位本身,如何将其分开。例如下面是其中一个数据包,其中在起始位(7878)和停止位(0d0a)之间包含“0a”。

7878ka130100**0a**00020017e73c0d0a

谢谢

最佳答案

您可以使用正则表达式。 re.findall将返回与模式匹配的所有匹配项:

>>> data = '78780a1301000400020017e73c0d0a787825260f071a0b050ac70165eaf0089b626021052e09019428139100fa7108000403020004a4810d0a78780a1301000409020016e73c0d0a'
>>> import re
>>> re.findall('7878.*?0d0a', data)
['78780a1301000400020017e73c0d0a',
'787825260f071a0b050ac70165eaf0089b626021052e09019428139100fa7108000403020004a4810d0a',
'78780a1301000409020016e73c0d0a']
  • 78780d0a 从字面上匹配 78780d0a
  • . 匹配任何字符。
  • .* 匹配 0 个或多个任意 (.) 字符 (greedy) 。附加 ? 将使匹配变得非贪婪。

关于 python : seperate particular string from group of strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759407/

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