Ruby 用正则表达式代替反斜杠?

Ruby 用正则表达式代替反斜杠?,ruby,regex,gsub,Ruby,Regex,Gsub,我有这个: a = "whut.\\nErgh" 我想要实现的是: “whut.\nErgh”#将2个反斜杠与1个反斜杠相加 我试过这个: a.gsub(/\\\\/) { '\\' } 但它还是给了我两个反斜杠 有人能解释一下这里出了什么问题吗?在“whut\\nErgh”中没有两个反斜杠,只有一个 “\\”只是一个反斜杠字符,第一个\用于在字符串中转义反斜杠 如果要将\\n转换为换行符,请使用: "whut.\\nErgh".gsub(/\\n/, "\n") “whut.\\nErg

我有这个:

a = "whut.\\nErgh"
我想要实现的是:

“whut.\nErgh”
#将2个反斜杠与1个反斜杠相加

我试过这个:

a.gsub(/\\\\/) { '\\' }
但它还是给了我两个反斜杠


有人能解释一下这里出了什么问题吗?

在“whut\\nErgh”中没有两个反斜杠,只有一个

“\\”
只是一个反斜杠字符,第一个
\
用于在字符串中转义反斜杠

如果要将
\\n
转换为换行符,请使用:

"whut.\\nErgh".gsub(/\\n/, "\n")

“whut.\\nErgh”
中没有两个反斜杠,只有一个

“\\”
只是一个反斜杠字符,第一个
\
用于在字符串中转义反斜杠

如果要将
\\n
转换为换行符,请使用:

"whut.\\nErgh".gsub(/\\n/, "\n")
试试这个:

"whut.\\nErgh".gsub(/\\n/, "")
试试这个:

"whut.\\nErgh".gsub(/\\n/, "")

正确的。我刚试过“whut\\nErgh”.gsub(/\\n/,'\n'),但没用。你介意进一步解释吗?对不起,我刚开始学习ruby。非常感谢@user3363340它应该可以工作,结果是
“whut.\nErgh”
如果您想更改原始字符串,请使用
gsub
。请注意,结果索引5处的字符是
“whut.\\nErgh”[5]=>“\n”
,是换行字符,而不是
“\”
@CarySwoveland编辑:)额外说明:如果您执行
“whut.\\nErgh”。chars
,您将获得
[“w”、“h”、“u”、“t”、“t”、““、”、“、“\”、“n”、“E”、“r”、“g”、“h”
。文本中没有
\n
字符,而是字母
n
。正如@xdazz所说,您的文本中只有一个反斜杠,即
“\\”
“\\”。length
返回
1
),因此他的回答=)正确。我刚试过“whut\\nErgh”.gsub(/\\n/,'\n'),但没用。你介意进一步解释吗?对不起,我刚开始学习ruby。非常感谢@user3363340它应该可以工作,结果是
“whut.\nErgh”
如果您想更改原始字符串,请使用
gsub
。请注意,结果索引5处的字符是
“whut.\\nErgh”[5]=>“\n”
,是换行字符,而不是
“\”
@CarySwoveland编辑:)额外说明:如果您执行
“whut.\\nErgh”。chars
,您将获得
[“w”、“h”、“u”、“t”、“t”、““、”、“、“\”、“n”、“E”、“r”、“g”、“h”
。文本中没有
\n
字符,而是字母
n
。正如@xdazz所说,您的文本中只有一个反斜杠,即
“\\”
“\\”。length
返回
1
),因此他的回答=)