从Markdown文件中删除YAML头

6
如何在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个回答

14

上面提到的解决方案将匹配从第一个---出现到最后一个---出现之间的所有内容。也就是说,如果您的文件中稍后出现了---,则不仅会删除标题,还会删除一些其他内容。

此正则表达式仅会删除yaml头部:

/\A---(.|\n)*?---/
\A 确保它从第一个 --- 开始匹配,? 使 * 变成非贪婪模式,这会让它停止在第二个 --- 匹配。

7
找到了一个解决方案,正则表达式应该是:
/---(.|\n)*---/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接