我需要读取一系列行中的文件,然后 根据包含的单词检索特定行 在他们中。我怎么能这样做?
到目前为止,我读到了这样的行:
lines = File.readlines("myfile.txt")
现在,我需要扫描包含“红色”,“兔子”,“蓝色”的行。我希望尽可能少的代码行完成这一部分。
所以,如果我的文件是:
the red queen of hearts.
yet another sentence.
and this has no relevant words.
the blue sky
the white chocolate rabbit.
another irrelevant line.
我只想看到这些行:
the red queen of hearts.
the blue sky
the white chocolate rabbit.
答案 0 :(得分:3)
lines = File.readlines("myfile.txt").grep(/red|rabbit|blue/)
答案 1 :(得分:1)
正则表达式是你的朋友。他们将迅速完成这项任务。
http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm
你想要一个
的正则表达式/^.*(red|rabbit|blue).*$/
^
表示行首,.*
表示匹配任何内容,(red|rabbit|blue)
表示您认为的含义,最后$
表示行尾。
答案 2 :(得分:0)
我认为在这种情况下每个循环都是最好的:
lines.each do |line|
if line.include? red or rabbit or blue
puts line
end
end
试一试。