我正在尝试从这样的 URL 中转义正斜杠
"http://example.com/qb-xhtml-v1.xsd" => "http://example.com/qb-xhtml-v1.xsd"
但是当我尝试使用 gsub 时,这就是我得到的
"http://example.com/qb-xhtml-v1.xsd".gsub("/", '/')
=> "http:\/\/example.com\/qb-xhtml-v1.xsd"
我也尝试过
"http://example.com/qb-xhtml-v1.xsd".gsub("/", '/' => '/')
和
"http://example.com/qb-xhtml-v1.xsd".gsub(/[/]/, '/')
结果相同。有什么想法吗?
我相信
你正在使用的交互式Ruby shell正在添加额外的反斜杠,而这些反斜杠实际上并不存在。
我在irb
中尝试了您的代码并得到了相同的结果:
irb(main):005:0> "http://example.com/qb-xhtml-v1.xsd".gsub("/", '/')
"http:\/\/example.com\/qb-xhtml-v1.xsd"
但是如果我使用puts()
它会正确打印:
irb(main):006:0> puts "http://example.com/qb-xhtml-v1.xsd".gsub('/', '/')
http://example.com/qb-xhtml-v1.xsd
=> nil
我怀疑红宝石外壳只是为了方便而转义反斜杠,这引起了混乱。