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

ste*_*boy 1 ruby regex string escaping

我输入了此访问令牌值

864876322670016\u00257C4e1d481ecad9eb45b9386745.1-1026038548\u00257CshuA8v7lgo7,hRr2AjbUBd3shek

在一个表单上,但它返回与这样的双反斜杠

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

我将此值传递给Facebook GraphAPI,这会返回错误.

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

Cas*_*per 6

你确定它实际上带有双反斜杠吗?带有反斜杠的内部字符串看起来像是有双反斜杠,因为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
Run Code Online (Sandbox Code Playgroud)

但如果它们双反斜杠,你可以这样做:

> puts aa
aaa\\bbb\\ccc                # String with double backslash
> aa.gsub!("\\\\", "\\")
> puts aa
aaa\bbb\ccc
Run Code Online (Sandbox Code Playgroud)