如何从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
但它不起作用。
答案 0 :(得分:6)
找到一个解决方案,正则表达式应该是:
/---(.|\n)*---/
答案 1 :(得分:5)
上面提到的解决方案将匹配从---
的第一次出现到---
的最后一次出现以及介于两者之间的所有内容。这意味着,如果您的文件中稍后出现---
,则不仅会删除标题,还会删除部分其他内容。
此正则表达式只会删除yaml标头:
/\A---(.|\n)*?---/
\A
确保它开始匹配---
的第一个实例,?
使*
非贪婪,这使得它停止匹配---
的第二个实例。