如何停止此代碼輸出中的重複項。Ruby循環輸出重複
RE = /<("[^"]*"|'[^']*'|[^'">])*>/
TAG_RE = /<(.+?)>(.*?)<.+?>/
text = "<date>show</date> me the current conditions for <city> detroit <END>"
a = []
text.scan(TAG_RE).map { |w| a<< w; }
text.gsub(RE, '').split.each do |q|
a.each_with_index do |v, i|
if q == a[i].last.strip
puts "#{q}\tB-#{a[i].first}"
else
puts "#{q}\tO"
end
end
end
產出
show B-date
show O
me O
me O
the O
the O
current O
current O
conditions O
conditions O
for O
for O
detroit O
detroit B-city
我只想字的單個實例,如果他們符合條件
喜歡這個
show B-date
me O
the O
current O
conditions O
for O
detroit B-city
我在哪裏可以把next
的循環?
編輯
這是密碼Rubyiotic?
text.gsub(RE, '').split.each do |q|
a.each_with_index do |v, i|
@a = a[i].last.strip # save in a variable
if @a == q
puts "#{q}\tB-#{a[i].first}"
break # break inner loop if match found
end
end
next if @a == q #skip current outer loop if match found
puts "#{q}\tO"
end
底特律應該結束''標籤嗎? –
這並不重要。它只是檢查標籤內的單詞,然後從開始部分獲取標籤名稱。 – arjun