需要从字符串中提取行和参考号

时间:2011-08-12 12:07:19

标签: ruby string

我的问题是我有一个非常大的文件,例如:

f = %q(1:9- The cost of\n  
51:10- The beams cost so much\n  
41:11- Should we buy more beams\n  
21:12- Why buy more}  

作为一个例子,我需要做的是从包含该特定单词的任何行中提取每个梁单词。但每个光束字必须带有它来自的线的参考,如下所示:

51:10 beams\n  
41:11 beams\n  

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

/(\d{2,2}:\d{2,2})-.*?(beams)/

第一个捕获将包含行参考,第二个捕获将包含单词beam

答案 1 :(得分:0)

您可以使用scan提取

f.scan(/^(\d+\:\d+).+?(beams)/)
=> [["51:10", "beams"], ["41:11", "beams"]]

输出:

f.scan(/^(\d+\:\d+).+?(beams)/).each do |pair| 
  puts pair.join(" ")
end
=>
51:10 beams
41:11 beams