我想读取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;移动",
答案 0 :(得分:0)
当您阅读文本文件时,文件中实际存在转义字符,因此它们会被读取并添加到您的字符串中。
在代码中生成字符串时,将解释转义字符。所以\“被替换为字符”并放在你的变量中。
因此无需转义输入文件中的特殊字符。
答案 1 :(得分:0)
我从文件中读取的数据反斜杠是数据的一部分。 在你的string2中,反斜杠是转义字符。
有更好的方法可以解决这个问题但是,你可能只是使用gsub来获取反斜杠。试试这个,看看它是否符合你的要求
string1.gsub(/[\\\"]/,"")
如果您只想删除/的
string1.gsub(/\\/,"") should work also