我如何解析Python中的字符串?

时间:2016-12-15 08:03:24

标签: python string parsing

我通过串行连接发送一个字符串,格式如下

&5:420:0:03713031464@

将解析为:

(start byte) (data length) : (type of message) (priority) (data1) : (data2): (data3) (CRC) (end byte)

我如何解析这些值?感谢。

1 个答案:

答案 0 :(得分:0)

查看正则表达式及其工作原理。使用正则表达式,您可以定义在字符串中搜索的搜索模式。例如,正则表达式搜索模式\&(\d):(\d)将搜索字符串以查找& +一个数字(将其存储在第一组中)+ : +另一个数字8存储在第二组中)。在字符串上使用它时,它会将第一个5存储在group1中,第一个4存储在group2中。

这是一个提取数据长度和消息类型的代码示例:

import re

line = "&5:420:0:03713031464@"

matchObj = re.match( r'\&(\d):(\d)', line)

if matchObj:
   print ("Data length : " + matchObj.group(1))
   print ("Type of message : " + matchObj.group(2))

您可以使用https://regex101.com/来试用正则表达式。它还会为您提供搜索模式的说明,例如我的示例https://regex101.com/r/tSPciD/1

我将把剩下的部分留给你,试图弄清楚如何解析完整的字符串。