Использование Regex для сопоставления списка буквенно-цифровых символов в python

Я пытаюсь разобрать файл построчно и посмотреть на пакетные данные, отправляемые процессором, которые в основном представлены буквенно-цифровыми символами. Я написал регулярное выражение на Python для чтения шаблона и сохранения данных пакета в списке.

Образец строки:

Date Time ProcessName ActivityName : 55 34 00 aa c9 00 11 45 55

Мое регулярное выражение:

r'([^\s]*?)\s([^\s]*?)\s([^\s]*?)\s([^\s]*?)\s(R.*?:)\s(\d|\D|\s)+$'

Я должен добавить данные пакета [числа, показанные после :] в список и выполнить некоторые действия по обработке шаблона. Когда я запускаю свой скрипт и печатаю match.group(6), он просто печатает мне кучу '\n' внутри списка.

Фрагмент моего скрипта:

regex = r'([^\s]*?)\s([^\s]*?)\s([^\s]*?)\s([^\s]*?)\s(R.*?:)\s(\d|\D|\s)+$'
pattern = re.compile(regex) 

for line in content:
    match = pattern.search(line)
    if match:
       print match.group(6)

Как мне прочитать набор буквенно-цифровых символов с помощью регулярного выражения?


person SRS    schedule 11.12.2014    source источник


Ответы (1)


Вы можете напрямую удалить это, используя re.findall.

 (?<=:)\s*([\da-zA-Z]{2}(?:\s[\da-zA-Z]{2})*)

Смотрите демо.

https://regex101.com/r/eZ0yP4/13

person vks    schedule 11.12.2014