Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在ascii和十六进制混合的字符串中查找消息_Python_Hex_Ascii - Fatal编程技术网

Python在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,

我尝试查找ascii混合字符串中的消息,该字符串具有以下格式:

"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}']