Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法阻止Ruby从输入字符串中转义字符_C#_Ruby_Escaping - Fatal编程技术网

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时,才能回答问题的其余部分。

关于
您应该更具体地说明“拥有”输入字符串的位置。如果它存储在ruby
String
ruby中,ruby不会对其进行篡改,但如果将此字符串放入源代码中,它将不可避免地解释一些反斜杠。因此,请具体说明:你从哪里得到它(以什么形式)以及它必须到哪里去?@divyanshm这似乎不仅仅是一个ruby问题。您需要向我们展示如何将字符串从C#传递到Ruby。关于Ruby部分,请参见我的答案。