0

'\x'Rubyで数値に文字列を追加するにはどうすればよいですか? 試してみ'\\x'ましたが、うまくいきません。

4

3 に答える 3

1

おそらく次のようなものです:

my_string = 'foo 123 456 bar'
my_string.gsub(/(\d+)/, '\\x\1') # "foo \\x123 \\x456 bar"
于 2012-04-20T09:37:27.533 に答える
0

単一引用符で囲まれた文字列を使用している場合は'\x'、必要なものが既にある可能性があります。Ruby (またはより正確には IRB) がリテラルのバックスラッシュを含む文字列を出力すると、デフォルトでエスケープされていることが示されます。これが#p動作の仕方です (IRB が結果を表示するために使用するものです)。ただし、必要に応じて、文字列にブラックスラッシュを 1 つだけ含めることもできます。

num = 123
s = '%d\x' % num  #=> "123\\x" (using the short-hand form for sprintf)

print s #=> 123\x
p s #=> "123\\x"
puts '%d\x' % num #=> 123\x - what the string actually contains

puts num.to_s + '\x'

Ruby では、単一引用符で囲まれた文字列リテラルは、二重引用符で囲まれた文字列リテラルよりも置換が少ないことに注意してください。

于 2012-04-20T09:50:32.377 に答える
0

コンテキストがなければ、何を達成しようとしているのかを知るのは困難です。ここにいくつかの方法があります(本当に追加したい場合):

"%d\\x" % num
"#{num}\\x" 

16 進数を出力しようとしている場合は、これで問題ありません。

"\\x%s" % num.to_s(16)
于 2012-04-20T09:37:42.570 に答える