-1
input = AA-AA-AA-AA-AA-AA

我如何能

  • 将奇数 (1st, 3rd, 5th) 替换为:
  • 将偶数 (2nd, 4th) 事件替换为.
4

4 回答 4

5
input.gsub("-").with_index(1){|_, i| i.odd? ? ":" : "."}
# => "AA:AA.AA:AA.AA:AA"
于 2012-12-19T07:11:18.603 回答
1

这是一种方法,尽管它不是您可能正在寻找的单线:

input = 'AA-AA-AA-AA-AA-AA'
input.count('-').times do |i|
  replacement = i.even? ? ':' : '.'
  input.sub!('-', replacement)
end
input
# => "AA:AA.AA:AA.AA:AA"
于 2012-12-19T07:06:43.113 回答
0
count= 0
input.gsub!(/\-/) do |s|
  count+= 1; s= count% 2== 0 ? '.' : ':'
end
于 2012-12-19T07:14:14.070 回答
0
input = "AA-AA-AA-AA-AA-AA".gsub("AA-AA", ":-.")

也许?

于 2012-12-19T07:12:10.920 回答