我的问题是我有一个非常大的文件,例如:
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
感谢任何帮助。
答案 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