2012-11-17 25 views
13

これを処理する正しい方法は何ですか?私はURLの文字列を解析し、それらを除去していますので、私は(とは/ etcプロトコル、短く、全長、なし)ので、私は異なるフォーマットに戻ってそれらを固執することができ、通常の%{keyname}または#{code}を使用することはできません文字列内の実際の%での文字列補間

"Hi %s, today is %s so you get 10% OFF!" % ['Joe', 'Monday'] 
# => ArgumentError: malformed format string - %O 

。したがって、置換の数は不明であり、名前はありません。彼らは単なるURLの配列です。

私も%を脱出しようとした:

"Hi %s, today is %s so you get 10\% OFF!" % ['Joe', 'Monday'] 
# => ArgumentError: malformed format string - %O 

が、正確な同じ結果を得ます。

答えて

27

二%の

>> "Hi %s, today is %s so you get 10%% OFF!" % ['Joe', 'Monday'] 
=> "Hi Joe, today is Monday so you get 10% OFF!" 
+1

ショーン!ありがとうございました!これはどこに文書化されていますか? – eagspoo

+1

Stringクラスのドキュメントでは、すべての書式設定オプションのKernel :: sprintfを指しています。 sprintfの実装ではかなり普遍的です。 –

+0

ここにはKernel :: sprintfのドキュメントがあります:http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-sprintf –

1
"Hi %s, today is %s so you get 10%% OFF!" % ['Joe', 'Monday']