2012-04-20 110 views
0

如何將字符串'\x'附加到Ruby中的數字中?我嘗試過'\\x',但它不起作用。在Ruby中轉義特殊字符

+0

請提供樣本輸入和輸出。 – taro 2012-04-20 09:33:10

回答

1

大概是這樣的:

my_string = 'foo 123 456 bar' 
my_string.gsub(/(\d+)/, '\\x\1') # "foo \\x123 \\x456 bar" 
+0

這可能是OP想要的,儘管他說「追加」,而不是「前置」。 – 2012-04-20 09:38:29

0

沒有上下文,很難知道你想要達到的目的。這裏有一些方法(如果你真的要追加):

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

如果你想輸出十六進制數字,這是件好事:

"\\x%s" % num.to_s(16) 
0

如果您使用的是單引號的字符串對於'\x',那麼你可能已經有你想要的。當Ruby(或者更準確地說,IRB)打印一個帶有文字反斜槓的字符串時,它會默認顯示它已被轉義,這就是#p的行爲方式(這是IRB用來顯示結果的方式)。但是該字符串可能只有一個黑色的符號。

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中,單引號字符串文字比雙引號文字經歷的替換少得多。