Я пытаюсь и не могу написать python совместимый REGEX, который захватывает несколько частей документа. Мой код на самом деле будет в Python, но сейчас я пробовал только на regex101.com, чтобы получить правильное выражение. (очевидно, безуспешно :))
Мой текст, основанный на файлах, выглядит примерно так:
<# .SYNOPSIS Это краткий текст, то есть многострочный синопсис - я хочу сопоставить весь этот текст как группа захвата. .PARAMETER Это еще один блок многострочный текст, который я хочу захватить .Что-то другой заголовок И некоторый другой многострочный текст # </p>
Я хотел бы захватить 2 группы (заголовок и основной текст), глобально. (т.е. для каждого раздела).
Моей конечной целью является python массив словарей типа;
[ {'header': 'SYNOPSIS', 'text':} {'header': 'PARAMETER', 'text':} ]
Раздел заголовка всегда привязан к началу строки с помощью '.' а затем в верхнем регистре текст. Тело раздела содержит любые слова и несловарные символы, включая CR / LF (на основе windows).
Имена заголовков не обязательно должны быть фиксированными литералами или в определенном порядке c. Также я не знаю, сколько заголовков может существовать.
Сейчас это выглядит так (^\.[A-Z]+)([\n\W\w]+)
Сейчас я могу сопоставить заголовок, за которым следует тело, но у меня время, чтобы РЕГЕКС по существу «перестал искать, когда вы нажмете следующий .HEADERTEXT».
Я создал Regex101 https://regex101.com/r/YqibeH/4, если он используется (не уверен, как это может сработать) ). , ,
Мой псевдо-код говорит что-то вроде:
Найти все строки, начинающиеся с ^. [AZ] в качестве группы захвата, затем продолжить сопоставление всего текста (многострочного) после заголовка в качестве второго захвата группа. Прекратите захват непосредственно перед следующим заголовком, который начинается ^. [AZ]
Любая помощь с благодарностью.