0
我在Ruby中的新手。 我有一個樣品(輸入文本),如:紅寶石:複製兩行
Message:
update attributes in file and commit version
----
Modified
我需要把線上行後「消息」標籤。請注意,此行可以與親近「消息」之類
Message:update attributes in file and commit version
我已經試過這樣:
if line =~/Message/
但是,當然,它不會搜索的下一行。
誰能幫我如何捕捉標記之間的「消息」和「---」 如果你知道一些例子,請鍵入鏈接
更新行:整個代碼
require 'csv'
data = []
File.foreach("new7.txt") do |line|
line.chomp!
if line =~ /Revision/
data.push [line]
elsif line =~ /Author/
if data.last and not data.last[1]
data.last[1] = line
else
data.push [nil, line]
end
elsif line=~/^Message:(.*)^-/m
if data.last and not data.last[2]
data.last[2] = line
else
data.push [nil, nil, line]
end
end
end
CSV.open('new1.csv', 'w') do |csv|
data.each do |record|
csv << record
end
enter code here
輸入文件:
Revision: 37407
Author: imakarov
Date: 21 июня 2013 г. 10:23:28
Message:my infomation
dmitry name
輸出CSV文件:
我只是檢查和其他類似的問題已經被問過SO /回答。你先搜索了嗎?我想知道我們是否應該將其標記爲重複或者是否有讓您找不到的東西。 –
@PeterAlfin非常感謝你!但它是正確的,如果我用這個表達是這樣的:如果行=〜/ ^消息:(*)^ -/Unfortunetely它不工作 –
不,你需要用'M'在表達式的末尾(繼尾隨斜線)。這是關鍵的推動因素。 –