C# 有没有办法阻止Ruby从输入字符串中转义字符
我有一个类似于C# 有没有办法阻止Ruby从输入字符串中转义字符,c#,ruby,escaping,C#,Ruby,Escaping,我有一个类似于\\some\windows\location的输入,我需要将其传递给Ruby命令 有没有办法阻止ruby编译器解释它?在传递上述输入时,我看到字符串已存储为\some\windows\location 此外,它还将\\some\new\location转换为\some\\new\location C#有一个@operator确保字符串按原样传递,ruby有类似的东西吗?我希望在不改变ruby代码的情况下实现这一点 添加 用户输入来自一个c#控制台应用程序,我希望对输入字符串进行最
\\some\windows\location
的输入,我需要将其传递给Ruby命令
有没有办法阻止ruby编译器解释它?在传递上述输入时,我看到字符串已存储为\some\windows\location
此外,它还将\\some\new\location
转换为\some\\new\location
C#有一个@operator确保字符串按原样传递,ruby有类似的东西吗?我希望在不改变ruby代码的情况下实现这一点
添加用户输入来自一个c#控制台应用程序,我希望对输入字符串进行最少的处理,以使其与Ruby一起工作。我想要的是将它从我的c#应用程序传递到ruby应用程序,并使其工作。这只是关于ruby部分的部分回答 如果您想在Ruby中创建一个带有单个反斜杠的字符串,您必须编写
\\
,因为反斜杠是一个转义字符。请注意,IRB或Pry等REPL将单个反斜杠显示为“\\\”
。但是,如果放入该字符串,则只会看到一个反斜杠,这是该字符串的实际内容。当您执行put string.inspect
或简单地p string
时,可以看到转义版本,这是相同的
one_backslash = "\\"
#=> "\\"
puts one_backslash
# \
puts one_backslash.inspect
# "\\"
p one_backslash
# "\\"
现在考虑一个小的Ruby程序,它得到用户输入,在给定的输入下删除尾部换行符和调用<代码>放置< /代码>和<代码> p>代码>
input = gets.chomp
# user enters \path\to\somewhere
puts input
# \path\to\somewhere
p input
# "\\path\\to\\somewhere"
现在应该很清楚Ruby是如何处理和输出反斜杠的,只有当您向我们展示如何将字符串从C#传递到Ruby时,才能回答问题的其余部分。关于
您应该更具体地说明“拥有”输入字符串的位置。如果它存储在rubyString
ruby中,ruby不会对其进行篡改,但如果将此字符串放入源代码中,它将不可避免地解释一些反斜杠。因此,请具体说明:你从哪里得到它(以什么形式)以及它必须到哪里去?@divyanshm这似乎不仅仅是一个ruby问题。您需要向我们展示如何将字符串从C#传递到Ruby。关于Ruby部分,请参见我的答案。