2014-12-11 5 views
1

Я пытаюсь разобрать файл по строкам и посмотреть, как пакетные данные отправляются процессором, которые по существу представлены в алфавитно-цифровых символах. Я написал регулярное выражение в Python, чтобы прочитать шаблон и сохранить пакетные данные в списке.Использование Regex для сопоставления списка буквенно-цифровых символов в 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' s внутри списка.

Фрагмент моего сценария:

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) 

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

ответ

3

Вы можете напрямую снять это с помощью re.findall.

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

Просмотреть демонстрационный файл.

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

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