为什么我的 Ruby 字符串显示转义字符反斜杠 ('\') 两次?
Why does my Ruby string show the escape character backslash ('\') twice?
我使用 \.br\
作为分隔符:
[10, 20, 30].join('\.br\')
预期结果:
"10\.br\.br"
实际返回的内容:
"10\.br\20\.br\30"
我为反斜杠添加了转义,我怎么能得到预期的结果?
我想您会发现字符串中的反斜杠实际上并没有加倍。
要检查,而不是使用 p
(which uses String#inspect
) just print it using puts
.
打印它
当字符串被 inspect
ed 时,它使用双引号,并尝试生成一个版本的字符串,您可以将其复制并粘贴到 Ruby 中以获得相同的字符串 - 所以它需要加倍反斜杠字符。
我使用 \.br\
作为分隔符:
[10, 20, 30].join('\.br\')
预期结果:
"10\.br\.br"
实际返回的内容:
"10\.br\20\.br\30"
我为反斜杠添加了转义,我怎么能得到预期的结果?
我想您会发现字符串中的反斜杠实际上并没有加倍。
要检查,而不是使用 p
(which uses String#inspect
) just print it using puts
.
当字符串被 inspect
ed 时,它使用双引号,并尝试生成一个版本的字符串,您可以将其复制并粘贴到 Ruby 中以获得相同的字符串 - 所以它需要加倍反斜杠字符。