【发布时间】:2014-12-11 10:33:38
【问题描述】:
我有一些数据存储在一个文件中,其中每个感兴趣的块都存储在一个段落中,如下所示:
hello
there
kind
people
of
stack
overflow
我尝试使用以下代码阅读每个段落,但它不起作用:
paragraphs = File.open("hundreds_of_gigs").lazy.to_enum.grep(/.*\n\n/) do |p|
puts p
end
我想说的是:“匹配任何以两个换行符结尾的东西”
我做错了什么?
任何解决此问题的懒惰方式都值得赞赏。方法越简洁越好。
【问题讨论】:
-
这里描述了非懒惰的方式:codereview.stackexchange.com/questions/37696/…
-
File#each_line完全满足您的需求 -
呃,我很确定它读的是行而不是段落。
-
@TheUnfunCat 确实如此,只需将 "\n\n" 作为参数传递
标签: ruby lazy-evaluation