Python 正则表达式:如何在文本文件中找到重复出现的文本块

Python Regex: How Can I find Recurring Blocks of Texts in a Text File

我正在尝试使用 Python 解析全部以“----BEGIN---”开头并以“---END”结尾的重复文本块。所以文本文件将如下所示。基本上,我希望能够找到每个块(单词、数字和特殊字符)并解析它们以供进一步分析。下面的代码和我得到的一样接近,但它 returns 整个文档,而不是每个块。任何帮助将不胜感激。

block_search = re.compile('----BEGIN---.*---END',re.DOTALL)
with open(file,'r',encoding='utf-8') as f:
    text = f.read()
    result = re.findall(block_search,text)

----开始--- 单词特殊字符数字单词特殊字符单词数字单词单词。 单词数字单词特殊字符单词数字单词单词 单词 数字 单词 单词 ---结束

----开始--- 单词单词数字单词特殊字符单词数字单词单词。 单词数字单词特殊字符单词数字单词单词 单词数字单词单词... ---结束

'----BEGIN---.*---END' 将匹配从第一次出现的 ----BEGIN--- 到最后一次出现的 ---END 之间的任何内容,这就是 .* 所做的。 如果要查找特定的块,使用.*?,它会在它后面的子串第一次​​出现后停止,或者说,它只会搜索到它后面的子串。

block_search = re.compile('----BEGIN---.*?---END',re.DOTALL)