您的位置:首页 > 编程语言 > Ruby

ruby如何替换字符串的多个?

2012-05-21 14:03 197 查看
具体需求是这样的:

字符串 cmd = "ls ? grep ?" 这是一个shell命令,最后需要执行(system cmd), 先需要替换?为具体的值

有很多的办法,参考一下rails的conditions 实现的办法
https://github.com/rails/rails/blob/ceb33f84933639d3b61aac62e5e71fd087ab65ed/activerecord/lib/active_record/sanitization.rb#L24
def replace_bind_variables(statement, values) #:nodoc:
        raise_if_bind_arity_mismatch(statement, statement.count('?'), values.size)
        bound = values.dup
        c = connection
        statement.gsub('?') { quote_bound_value(bound.shift, c) }
      end


和 faye 的日志显示办法

message = message_args.shift.gsub(/\?/) do
        Faye.to_json(message_args.shift)
      end


实现自己的方法, code 如下

1.9.2p290 :008 > a = [1,2]
 => [1, 2] 
1.9.2p290 :009 > cmd.gsub(/\?/) {
1.9.2p290 :010 >     a.shift
1.9.2p290 :011?>   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: