我是python初学者
我有一个以下格式的大型txt文件,由多个一句话段落组成:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
****
Sed id placerat magna.
*******
Pellentesque in ex ac urna tincidunt tristique.
Etiam dapibus faucibus gravida.
我试图将输出作为仅输出星号段落后面的段落[每个星号段落至少4个星号]
我需要的输出:
Sed id placerat magna.
Pellentesque in ex ac urna tincidunt tristique.
我尝试过这样的方法,但我不知道A]如何设置每个星号段落的最少4个星号,以及B]如何设置星号段落之后的段落
import re
article_content = [open('text.txt').read() ]
after_asterisk_article_paragraph = []
string = "****"
after_asterisk_article_paragraph = string[string.find("****")+4:]
print(*after_asterisk_article_paragraph, sep='\n\n')
再说一遍,我刚刚开始学习Python,请原谅
您可以读取整个文件,并使用一个模式来匹配至少4倍的asterix,然后是所有非空行或以4倍asterix开头的行
^\*{4,}
从字符串开始匹配4次或更多次*
(
捕获组1(?:
非捕获组\r?\n
匹配换行符(?!\s*$|\*{4}).+
如果整行不是空的,或者以4次开始*
使用负前瞻(?!
匹配整行)*
可选地重复该组)
关闭捕获组1Regex demo
例如,使用re.findall返回捕获组1的值:
输出
相关问题 更多 >
编程相关推荐