Ruby 如何在字符串中写入\1

Ruby 如何在字符串中写入\1,ruby,string,escaping,Ruby,String,Escaping,我正试图在字符串中写入\1,但无法完成。如果有人帮我做这种奇怪的行为,我将不胜感激。这是一个有一些解释的例子 编辑:添加示例输出 puts\1\\1当我在IRB中键入\1时,返回的值是\u0001,这是Ruby的操作方式 代表人物 当我写入puts'\1时,IRB中的行为与运行时的行为相同 剧本。我看到一个unicode字符映射,如下所示 0 0 0 1 这并不是所有平台上的输出都相同,这取决于unicode的使用方式 显示。这可能就是为什么在repl.it示例中看不到输出的原因 您尝试过pu

我正试图在字符串中写入\1,但无法完成。如果有人帮我做这种奇怪的行为,我将不胜感激。这是一个有一些解释的例子

编辑:添加示例输出

puts\1\\1

当我在IRB中键入\1时,返回的值是\u0001,这是Ruby的操作方式 代表人物

当我写入puts'\1时,IRB中的行为与运行时的行为相同 剧本。我看到一个unicode字符映射,如下所示

0 0
0 1
这并不是所有平台上的输出都相同,这取决于unicode的使用方式 显示。这可能就是为什么在repl.it示例中看不到输出的原因

您尝试过puts'\1'吗?单引号而不是双引号
我不是100%确定你在问什么,但如果有帮助,干杯

有几种方法可以实现:

"\\1"
'\1'
?\\ + ?1
请记住,它的显示方式始终是\\1,这意味着文字反斜杠,1,这是您想要的。要知道这是正确的,请使用puts:

在双引号字符串中,反斜杠具有重要意义\n表示换行符。在单引号字符串中,有两个字符:反斜杠和n

您甚至可以测试这一点:

"\\1".chars
# => ["\\", "1"]

'\1'.chars
# => ["\\", "1"]

所以你可以看到Ruby将其解释为两个字符,而不是三个。不要被双引号字符串中的第二个反斜杠所愚弄。这就是文字反斜杠的表示方式。

您的命令行显示\1,因为irb对对象进行检查,它将转义字符串。因此本质上\1是正确存储的,但当它显示它时,它会添加另一个\以指示它已转义

请编辑您的问题,以包括示例代码和解释。指向其他网站的链接往往会变差,这使得这个问题和任何答案对未来的访问者来说都不太有用。你真的想要反斜杠吗?欢迎使用堆栈溢出。请阅读和阅读。我们希望您将您的代码和努力的证据包含在问题本身中,而不是链接到其他地方。“链接腐烂,然后断开,使你的问题对任何人都没有意义。”Jordan示例代码补充道。谢谢你的邀请tip@sawa\1或\\1都不能为您的答案生成\1感谢字符串@让我知道这是否有效,如果有效,请接受它作为您的解决方案。让其他人很容易找到这种方法。
"\\1".chars
# => ["\\", "1"]

'\1'.chars
# => ["\\", "1"]