将某些段落重新格式化为 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.
但实际上,解析和重新格式化格式不佳的文本总是一个怪癖,基本上是无止境的任务。我相信还会有其他问题。您将永远只有部分临时解决方案。
我是 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.
但实际上,解析和重新格式化格式不佳的文本总是一个怪癖,基本上是无止境的任务。我相信还会有其他问题。您将永远只有部分临时解决方案。