Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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
Ruby 字符串中的反斜杠返回两个反斜杠_Ruby_Regex_String_Escaping - Fatal编程技术网

Ruby 字符串中的反斜杠返回两个反斜杠

Ruby 字符串中的反斜杠返回两个反斜杠,ruby,regex,string,escaping,Ruby,Regex,String,Escaping,我输入了这个访问令牌值 864876322670016\u00257C4e1d481ecad9eb45b9386745.1-1026038548\u00257CshuA8v7lgo7-hRr2AjbUBd3shek 在一个表单上,但返回时带有双反斜杠,如下所示 864876322670016\\u00257C4e1d481ecad9eb45b9386745.1-1026038548\\u00257CshuA8v7lgo7-hRr2AjbUBd3shek 我正在将此值传递给Facebook Gra

我输入了这个访问令牌值

864876322670016\u00257C4e1d481ecad9eb45b9386745.1-1026038548\u00257CshuA8v7lgo7-hRr2AjbUBd3shek

在一个表单上,但返回时带有双反斜杠,如下所示

864876322670016\\u00257C4e1d481ecad9eb45b9386745.1-1026038548\\u00257CshuA8v7lgo7-hRr2AjbUBd3shek

我正在将此值传递给Facebook GraphAPI,这将返回一个错误


如何获得返回值,并将双反斜杠替换为单反斜杠?或者有没有办法让双反斜杠不出现?

您确定它是用双反斜杠返回的吗?内部带有反斜杠的字符串看起来像是有两个反斜杠,因为Ruby正在转义它们:

> a = 'aaa\bbb\ccc'
=> "aaa\\bbb\\ccc"           # Looks like doubles
> a
=> "aaa\\bbb\\ccc"
> a.inspect
=> "\"aaa\\\\bbb\\\\ccc\""   # Looks even worse
> puts a
aaa\bbb\ccc                  # ...but it isn't
但如果它们是双反斜杠,您可以这样做:

> puts aa
aaa\\bbb\\ccc                # String with double backslash
> aa.gsub!("\\\\", "\\")
> puts aa
aaa\bbb\ccc

你确定它是用双反斜杠返回的吗?内部带有反斜杠的字符串看起来像是有两个反斜杠,因为Ruby正在转义它们:

> a = 'aaa\bbb\ccc'
=> "aaa\\bbb\\ccc"           # Looks like doubles
> a
=> "aaa\\bbb\\ccc"
> a.inspect
=> "\"aaa\\\\bbb\\\\ccc\""   # Looks even worse
> puts a
aaa\bbb\ccc                  # ...but it isn't
但如果它们是双反斜杠,您可以这样做:

> puts aa
aaa\\bbb\\ccc                # String with double backslash
> aa.gsub!("\\\\", "\\")
> puts aa
aaa\bbb\ccc

这只是它的显示方式,以转义形式。你的错误可能在别处

这是对输出的一种常见误解,正如前面所指出的,当您第一次看到它时,会有点困惑

从,当此人的问题基本相同时:

该死。我忘了,当结果以双引号显示时,它显示它已转义


还有一个关于这个问题的简短讨论。

这只是它以转义形式显示的方式。你的错误可能在别处

这是对输出的一种常见误解,正如前面所指出的,当您第一次看到它时,会有点困惑

从,当此人的问题基本相同时:

该死。我忘了,当结果以双引号显示时,它显示它已转义

这里也有一个关于这个问题的简短讨论