Ruby String从文件输出反斜杠读取

时间:2014-05-08 23:58:09

标签: ruby

我想读取data.txt文件并输出与string2相同的内容,但是当我从文件中读取Ruby时会打印反斜杠,为什么会这样,我该如何避免呢?

data.txt包含

  

\" \"富\":{\" ID为\":1111,\"名称\":\& #34;酒吧\",

file = File.open("data.txt", "r")
string1 = file.read

puts "string1: #{string1}"

string2 = "\",\"foo\":{\"id\":1111,\"name\":\"Bar\","
puts "string2: #{string2}"

输出

$ ruby test.rb
\",\"role\":{\"id\":1111,\"name\":\"Mobile\",
","role":{"id":1111,"name":"Mobile",

我的目标是阅读data.txt并输出"," role":{" id":1111," name":&# 34;移动",

2 个答案:

答案 0 :(得分:0)

当您阅读文本文件时,文件中实际存在转义字符,因此它们会被读取并添加到您的字符串中。

在代码中生成字符串时,将解释转义字符。所以\“被替换为字符”并放在你的变量中。

因此无需转义输入文件中的特殊字符。

答案 1 :(得分:0)

我从文件中读取的数据反斜杠是数据的一部分。 在你的string2中,反斜杠是转义字符。

有更好的方法可以解决这个问题但是,你可能只是使用gsub来获取反斜杠。试试这个,看看它是否符合你的要求

string1.gsub(/[\\\"]/,"")

如果您只想删除/的

string1.gsub(/\\/,"") should work also