将某些段落重新格式化为 Markdown

Reformat certain paragraphs to Markdown

我是 python 初学者。

我有这段代码可以获取符号“*****”之后的所有段落

import re

file = open('/Users/text.txt', mode='r')

result = [s.strip() for s in re.findall(r'^\*{4,}((?:\r?\n(?!\s*$|\*{4}).+)*)', file.read(), re.MULTILINE)]

print(*result, sep="\n\n")

file.close()

当前输入:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

****
Sed id placerat magna.

*******
*******
*******
Pellentesque in ex ac urna tincidunt tristique. 

Etiam dapibus faucibus gravida.

当前输出:

Sed id placerat magna.

Pellentesque in ex ac urna tincidunt tristique. 

需要输出:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

==Sed id placerat magna.==

==Pellentesque in ex ac urna tincidunt tristique.==

Etiam dapibus faucibus gravida.

主要是尝试将亮点重新格式化为 Markdown .md 格式。 到目前为止,但似乎无法弄清楚如何做到这一点。

大概是这样的:

import re

text = '''Lorem ipsum dolor sit amet, consectetur adipiscing elit.

****
Sed id placerat magna.

*******
Pellentesque in ex ac urna tincidunt tristique.

Etiam dapibus faucibus gravida.'''

print(re.sub(r'\n\*{4,}\n(.+)\n', r'\n====\n', text))

不过,文本的开头和结尾可能存在问题。在开始和结束之前添加 \n 以处理文本并在之后删除它们可能是有意义的。保险起见。

更新

这是满足新要求的更新版本:

import re

# open txt file
with open('d:/Users/text.txt', 'r') as f:
    text = f.read()

text = re.sub('\*\n+\*', '**', text)  # remove all '\n' between all '*'
text = re.sub(r'\n\*{4,}\n(.+)\n', r'\n====\n', text)

# save txt file
with open('d:/Users/output.txt', 'w') as f:
    f.write(text)

输入:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

****
Sed id placerat magna.

*******
*******
*******
Pellentesque in ex ac urna tincidunt tristique.

Etiam dapibus faucibus gravida.

输出:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

==Sed id placerat magna.==

==Pellentesque in ex ac urna tincidunt tristique.==

Etiam dapibus faucibus gravida.

但实际上,解析和重新格式化格式不佳的文本总是一个怪癖,基本上是无止境的任务。我相信还会有其他问题。您将永远只有部分临时解决方案。