从markdown文件中删除YAML标头

时间:2013-03-04 17:11:04

标签: ruby regex replace yaml

如何从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

但它不起作用。

2 个答案:

答案 0 :(得分:6)

找到一个解决方案,正则表达式应该是:

/---(.|\n)*---/

答案 1 :(得分:5)

上面提到的解决方案将匹配从---的第一次出现到---的最后一次出现以及介于两者之间的所有内容。这意味着,如果您的文件中稍后出现---,则不仅会删除标题,还会删除部分其他内容。

此正则表达式只会删除yaml标头:

/\A---(.|\n)*?---/

\A确保它开始匹配---的第一个实例,?使*非贪婪,这使得它停止匹配---的第二个实例。