構造体の要素を反復処理し、フォーマット{...}
を含む文字列を探し、対応する文字列をハッシュから置き換えようとしています。これは私が使用しているデータです。正規表現を使用して文字列のパラメータを置換する
Request = Struct.new(:method, :url, :user, :password)
request = Request.new
request.user = "{user} {name}"
request.password = "{password}"
parameters = {"user" => "first", "name" => "last", "password" => "secret"}
これが試み1:この試み、parameters["\1"] == nil
で
request.each do |value|
value.gsub!(/{(.+?)}/, parameters["\1"])
end
。
試み2:
request.each do |value|
value.scan(/{(.+?)}/) do |match|
value.gsub!(/{(.+?)}/, parameters[match[0]])
end
end
これはrequest.user == "first first"
になります。試してparameters[match]
の結果はnil
です。
誰でもこれを解決できますか?
@sawaこんにちは、あなたの答えは素晴らしいですが、あなたは '値%parameters'背後に魔法を説明してくださいすることができます。私は見ていない前にこの方法で使用された%演算子。 – Scotty
http://ruby-doc.org/core-2.2.0/String.html#method-i-25 – sawa