繁体   English   中英

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

[英]Regex to match lines in-between two specific lines, in Python

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

示例文件内容:

---
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 vs Windows行尾时。 有没有办法允许此正则表达式匹配\\ r(如果也存在)? 它与unix兼容, \\n我相信。

另外,如果您认为此正则表达式可以改进,则欢迎提出建议。

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

序列(\\r\\n|\\r|\\n)将匹配所有“普通”行的结尾(分别为Windows,旧Mac和* nix)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM