Python在ascii和十六进制混合的字符串中查找消息
我尝试查找ascii混合字符串中的消息,该字符串具有以下格式:Python在ascii和十六进制混合的字符串中查找消息,python,hex,ascii,Python,Hex,Ascii,我尝试查找ascii混合字符串中的消息,该字符串具有以下格式: "212zp* ��� �91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp+ ��� �91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp, ��� �91238902Pressure_1,
"212zp* ��� �91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp+ ��� �91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp, ��� �91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp- ��� "
我需要同时解码十六进制和ascii消息。消息介于91238902
和478212
我怎样才能做到这一点?字符串是动态的,可以包含未定义数量的消息,并且头
91238902
和478212
中可能出现错误这似乎是正则表达式的完美用法。以下是链接到:
这似乎是正则表达式的完美用法。以下是链接到:
谢谢,很好用。我怎样才能从与我一起阅读的字符串中提取信息?findall?@HansPeterLoft,我的荣幸!如果这已经回答了您的问题,请将此答案标记为已接受(仅在回答时)。您能解释一下您所说的“擦除您读取的消息”是什么意思吗??我从中读取数据的字符串是一个串行端口,在您的示例中,我将读取的所有数据附加到字符串x中。因为当我检查消息时,数据可能只到达一半,我不能在读取消息后扔掉x,但我想从我已经读过的x中删除消息。我会尝试想出一些
非逻辑的。如果附加到已阅读的邮件列表,则可以比较这两个列表。[这个问题]()举个例子。在psuedo代码中,如果一个列表中的内容在另一个过程中,则为。否则-请阅读
谢谢,这很好用。我怎样才能从与我一起阅读的字符串中提取信息?findall?@HansPeterLoft,我的荣幸!如果这已经回答了您的问题,请将此答案标记为已接受(仅在回答时)。您能解释一下您所说的“擦除您读取的消息”是什么意思吗?
?我从中读取数据的字符串是一个串行端口,在您的示例中,我将读取的所有数据附加到字符串x中。因为当我检查消息时,数据可能只到达一半,我不能在读取消息后扔掉x,但我想从我已经读过的x中删除消息。我会尝试想出一些非逻辑的。如果附加到已阅读的邮件列表,则可以比较这两个列表。[这个问题]()举个例子。在psuedo代码中,如果一个列表中的内容在另一个过程中,则为。Else-阅读
import re
x = "212zp*91238902Pressure_1,9472,Pressure_2,4251,is_usb:{0}478212zp+91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp,91238902Pressure_1,9472,Pressure_2,4251,is_usb: {0}478212zp-"
# will grab between 91238902 and 478212
# alternative regex is: (?<=91238902).*?(?=478212)
result = re.findall(r'91238902(.*?)478212', x)
['Pressure_1,9472,Pressure_2,4251,is_usb:{0}', 'Pressure_1,9472,Pressure_2,4251,is_usb: {0}', 'Pressure_1,9472,Pressure_2,4251,is_usb: {0}']