检查给了我 \\ 但只放了 \
为什么两次看跌期权的结果不同?
test_string = "C:/Program Files/TestPro/TestPro Automation Framework/"
puts test_string.gsub("/","\\\\")
#result is : C:\Program Files\TestPro\TestPro Automation Framework\
puts
puts test_string.gsub("/","\\\\") .inspect
#result as desired : C:\\Program Files\\TestPro\\TestPro Automation Framework\\
why do I have different results from both puts?
test_string = "C:/Program Files/TestPro/TestPro Automation Framework/"
puts test_string.gsub("/","\\\\")
#result is : C:\Program Files\TestPro\TestPro Automation Framework\
puts
puts test_string.gsub("/","\\\\") .inspect
#result as desired : C:\\Program Files\\TestPro\\TestPro Automation Framework\\
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Ruby 的 String.inspect 转义所有特殊字符,这就是为什么你会看到“
\\
” 与 .inspect请参阅 String.inspect source 这里
基本上,
if c == '\'
,将“\
”连接到它,所以它变成了“\\< /code>"
如果你想双重转义反斜杠,你需要尝试使用
Ruby's String.inspect escape all special characters, thats why you seee "
\\
" with .inspectSee String.inspect source here
basically,
if c == '\'
, concatenate "\
" to it, so it became "\\
"If you want double escape the backslash, you need to try with
puts
将返回第一个斜杠作为转义符号。 Inspect 不会触发转义斜杠,因此它显示原始字符串。因此,如果您尝试这样做,它会起作用:
puts
will return first slashes as an escape symbol. Inspect won't trigger escape slashes, so it shows original string.So if you will try this it will work: