Я пытаюсь создать Regular-Expression
в Python, который должен захватывать заголовки и соответствующий им текст в виде многострочной строки. Пример строки:
.Main Header
This is the main paragraph in the text. Also this is another sentence.
.Sub-Header
This is secondary header and text.
.Last Header
And this is the last header in the text.
Здесь .Main Header
, .Sub-Header
& .Last Header
- заголовки абзацев и следующие несколько строк (текст до следующей строки ".Header" ) тело текста. Итак, мой ожидаемый результат:
Header1 - .Main Header, Text1 - This is the main paragraph in the text. Also this is another sentence.
Header2 - .Sub-Header, Text2 - This is secondary header and text.
Header3 - .Last Header, Text3 - And this is the last header in the text.
Я попытался собрать regex
, чтобы оправдать это ожидание, и оно почти работает, единственная проблема, с которой я сталкиваюсь, это захватить текст, где находится dot(.)
между предложением (, например, Text1 ), критерии остановки для моих regex
- это newline
и dot(.)
, поскольку следующий заголовок начинается с dot(.)
, поэтому я ищу помощь чтобы дифференцировать обычную точку с точкой новой строки в качестве критерия остановки.
Мое текущее регулярное выражение:
^(.\w+[^\n]+)\n([^\.]+)
Для Text1
это захватывает:
This is the main paragraph in the text
Но следует захватить:
This is the main paragraph in the text. Also this is another sentence.