随机替换文件中的特定字符(ruby)

时间:2016-07-18 07:56:41

标签: ruby gsub

我试图找到一个简单的解决方案来随机替换文件中的特定字符。

不幸的是,我的解决方案取代了所有找到的字符,而不仅仅是其中的一些字符。

file_names = ['users_controller.rb']

file_names.each do |file_name|
  text = File.read(file_name)
  new_contents = text.gsub(",", ";") #replaces , to ; (unfortunatly all and not just some)
  puts new_contents
  File.open(file_name, "w") {|file| file.puts new_contents }
end

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

问题不明确。如果要将特定(固定)字符(",")的某些随机出现替换为特定(固定)字符(";"),请执行以下操作:

text.gsub(","){rand(2).zero? ? "," : ";"}