Чтение нескольких строк одновременно из файла в Python для сопоставления регулярных выражений - PullRequest
0 голосов
/ 23 декабря 2018

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

У меня есть файл журнала, в котором я ищу сообщение об утверждении, подобное этому:

*** ASSERT: 0xb83c6056

    *** type of assert: <xyz>

    *** file: .

    *** firmware revision: <xyz>

    *** firmware build timestamp: <xyz>

    *** seconds since 1970: <xyz>

    *** at address: <xyz>

    *** fault address: xyz>

    *** Error sub-type: <xyz>

Я использую следующеерегулярное выражение.

re.compile(r'(\*){3}(\s){1}(ASSERT: )(.+)(\n){2}(\t)(\*){3}(\s){1}(type of assert: )(.+)(\n){2}(\t)(\*){3}(\s){1}(file: )(.+)(\n){2}(\t)(\*){3}(\s){1}(firmware revision: )(.+)(\n){2}(\t)(\*){3}(\s){1}(firmware build timestamp: )(.+)(\n){2}(\t)(\*){3}(\s){1}(seconds since 1970: )(.+)(\n){2}(\t)(\*){3}(\s){1}(at address: )(.+)(\n){2}(\t)(\*){3}(\s){1}(fault address: )(.+)(\n){2}(\t)(\*){3}(\s){1}(Error sub-type: )(.+)')

Скажите, пожалуйста, как я могу улучшить свое регулярное выражение, чтобы загрузить весь файл сразу и выполнить сопоставление с регулярным выражением.Прямо сейчас, благодаря моим знаниям, я могу читать только построчно.

...