2016-12-15 5 views
-2

Я посылаю строку с помощью последовательного соединения к питону в следующем форматеКак я могу разобрать строку в Python?

&5:420:0:[email protected] 

Какого бы анализироваться как:

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

Как бы я анализирую эти значения? Благодарю.

+1

Что именно вы хотите сделать? «Я имею в виду разбор этих значений», каково ваше ожидание анализируемого результата? –

ответ

0

Посмотрите на регулярное выражение и как оно работает. Используя регулярное выражение, вы можете определить шаблоны поиска, которые вы ищете в строке. Например, шаблон поиска в регулярном выражении \&(\d):(\d) будет искать строку для & + номер (сохраняющий его в первой группе) + : + другое число 8, которое будет храниться во второй группе). Когда вы используете его в своей строке, он сохранит первый 5 в группе 1 и первый 4 в группе2.

Вот пример кода извлечения данных длины и типа сообщения:

import re 

line = "&5:420:0:[email protected]" 

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

Я оставлю остальное вам, чтобы попытаться выяснить, как разбирать полную строку.

Смежные вопросы