Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何从 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
但它没有用。
上面提到的解决方案将匹配从第一次出现---到最后一次出现---以及介于两者之间的所有内容。这意味着如果---稍后出现在您的文件中,您不仅会删除标题,还会删除其他一些内容。
---
此正则表达式只会删除 yaml 标头:
/\A---(.|\n)*?---/
\A确保它开始与 的第一个实例匹配,并且---使?成为*非贪婪的,这使得它在 . 的第二个实例停止匹配---。
\A
?
*
找到了解决方案,正则表达式应该是:
/---(.|\n)*---/