4

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

但它没有用。

4

2 回答 2

10

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

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

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

\A确保它开始与 的第一个实例匹配,并且---使?成为*非贪婪的,这使得它在 . 的第二个实例停止匹配---

于 2015-11-05T05:41:33.363 回答
7

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

/---(.|\n)*---/
于 2013-03-04T17:20:30.610 回答