【问题标题】:Remove YAML header from markdown file从 Markdown 文件中删除 YAML 标头
【发布时间】:2013-02-18 20:47:40
【问题描述】:
如何从 Ruby 中的文本文件中删除像这样的 YAML 标头:
---
date: 2013-02-02 11:22:33
title: "Some Title"
Foo: Bar
...
---
(YAML 被三个破折号 (-) 包围)
我试过了
text.gsub(/---(.*)---/, '') # text is the variable which contains the full text of the file
但是没有用。
【问题讨论】:
标签:
ruby
regex
replace
yaml
【解决方案1】:
上面提到的解决方案将从--- 的第一次出现匹配到--- 的最后一次出现以及介于两者之间的所有内容。这意味着如果--- 稍后出现在您的文件中,您不仅会删除标题,还会删除一些其余内容。
此正则表达式只会删除 yaml 标头:
/\A---(.|\n)*?---/
\A 确保它开始与--- 的第一个实例匹配,? 使* 成为非贪婪的,这使它停止匹配--- 的第二个实例。
【解决方案2】:
找到了解决办法,正则表达式应该是:
/---(.|\n)*---/