我有一个大的多行字符串,其中有多个条目遵循类似的格式.我想将它拆分为每个条目的字符串列表.
我尝试了以下方法:
myre = re.compile('Record\sTime.*-{5}', re.DOTALL)
return re.findall(myre, text)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,条目以"记录时间"开头,以"-----"结束.上面的代码不是按照我的方式行事,而是返回一个项目,从第一个条目的开头开始,到最后一个条目的结尾.
我可能会找到一种方法来通过使用正则表达式来查找段的结尾,然后从原始文本的片段开始重复,但这看起来很混乱.
您需要通过添加问号将其.*
变为不情愿的匹配:
.*?
Run Code Online (Sandbox Code Playgroud)
否则,它会尽可能多地匹配,从第一个记录的中间到最后一个记录的中间.
请参阅Greedy vs. Reluctant vs. Possessive Quantifiers