Sku*_*lly 1 ruby string backslash
我有一个带有格式的给定导出源的反斜杠的路径字符串(窗口)
"path\to\something"
Run Code Online (Sandbox Code Playgroud)
当我尝试在红宝石中读取它时,它会读取
\t
Run Code Online (Sandbox Code Playgroud)
和
\s
Run Code Online (Sandbox Code Playgroud)
作为逃脱序列.最后我想要一个
File.join(my_unix_path, "path\to\something")
Run Code Online (Sandbox Code Playgroud)
我知道
%q{"path\to\something"}
Run Code Online (Sandbox Code Playgroud)
但是因为我在变量中有字符串,所以我不能那样使用它.有任何想法如何删除它或将其转换为常规的unix路径?
不要在使用Ruby的路径时使用反斜杠.
与许多其他语言一样,Ruby知道该平台并将自动将路径斜杠转换为平台的正确方向.这意味着你总是可以在路径中使用正斜杠,并完成它:
从IO的文档:
如果可能,Ruby将在不同的操作系统约定之间转换路径名.例如,在Windows系统上,文件名"/gumby/ruby/test.rb"将打开为"\ gumby\ruby\test.rb".在Ruby字符串中指定Windows样式的文件名时,请记住转义反斜杠:
"c:\\gumby\\ruby\\test.rb"
我们这里的例子将使用Unix风格的正斜杠; File :: SEPARATOR可用于获取特定于平台的分隔符.
作为补充信息,这个问题你有看到"path\to\something"有一名逃犯\s,并\t是因为字符串在双引号.如果是单引号,问题就不会发生,因为反斜线会失去魔力.有关详细信息,请参阅" 单引号字符串中的反斜杠与Ruby中的双引号字符串? ".
| 归档时间: |
|
| 查看次数: |
1782 次 |
| 最近记录: |