Skip to main content
 首页 » 编程设计

python之在 Python 中匹配两条特定行之间的行的正则表达式

2025年05月04日24unruledboy

我正在尝试使用正则表达式从文件中读取的文本中解析出一些行。我知道这可以通过逐行读取文件来完成,但我喜欢在单个正则表达式匹配中捕获所有相关信息位的优雅。

示例文件内容:

--- 
title: a title 
layout: page 
--- 
 
here's some text 
================ 
 
this will be blog post content. 

我正在尝试生成将返回 2 组的正则表达式匹配:“---”行之间的数据,以及第二个“---”行之后的所有数据。这是我想出的正则表达式字符串,但我遇到了问题:

re.match('---\n(.*?)\n---\n(.*)', content, re.S) 

这似乎工作得很好,除了在处理 unix 和 windows 行尾时。有没有办法让这个正则表达式匹配一个\r 如果它也存在?它适用于 unix,我相信它只是 \n。

另外,如果您认为这个正则表达式可以改进,我愿意接受建议。

请您参考如下方法:

行尾标记被视为空白,因此您可以使用构造 \s+ 来匹配与平台无关的行尾(和其他空白)。