【发布时间】:2014-01-20 13:15:48
【问题描述】:
我写了一些函数来替换字符串中的一个值。 我需要一些时间才能根据各种文档弄清楚它,但我想问一些 RUBY 中的冠军关于 RIGHT WAY,如何编码?
def replace(newValue)
=begin
[0]: A0000001561234 = 10,10,1,X,0,0,12345,12345
1. A0000001561234 =
2. 10
3. 10
4. 1
5. X
6. 0
7. 0
8. 12345
9. 12345
//source - http://rubular.com/
=end
Dir.foreach('./') do |item|
next if item == '.' or item == '..'
if item =~ /(.*)online(.*)/
IO.write(item, File.open(item) do |f| f.read.gsub(/^(A000[0-9]{10}.*)([0-9]{2})\,(.*)\,(.*)\,(.*)\,(.*)\,(.*)\,([1-5]*)\,([1-5]*)\n/x, "\\1\\2,\\3,\\4,\\5,\\6,\\7,#{newValue},\\9\n" ) end)
puts "done"
end
end
end
【问题讨论】:
-
作为一种风格,并且要编写惯用的 Ruby,不要在方法中使用带有
=begin/=end的块 cmets,就好像 Ruby 是 Python 一样。相反,将其移到您的方法之前,并使用标准的#注释标记。 RDoc 将能够自动找到该信息并将其合并到您的代码文档中。也使用两个空格来缩进,而不是四个。 -
您应该展示一个预期输出的示例。 Rubular 提取物有助于查看您正在解析的内容,但它显示了您是如何做的,不一定是应该如何做,并且它无法向我们展示您的预期输出是。
标签: ruby regex optimization replace gsub