Ruby on rails 用Ruby删除字符串中的双反斜杠

Ruby on rails 用Ruby删除字符串中的双反斜杠,ruby-on-rails,ruby,replace,gsub,Ruby On Rails,Ruby,Replace,Gsub,我有以下字符串: string = "\"2014\\/jul\\/grandes\\/volvo-s-60-d5-momentum-1403253_2.jpg\"" 我要将gsub放入此字符串中: string = "2014/jul/grandes/volvo-s-60-d5-momentum-1403253_2.jpg" 以下是我认为它应该如何工作: string.gsub(/\\./,'') 但这也带来了: "\"2014julgrandesvolvo-s-60-d5-moment

我有以下字符串:

string = "\"2014\\/jul\\/grandes\\/volvo-s-60-d5-momentum-1403253_2.jpg\""
我要将gsub放入此字符串中:

string = "2014/jul/grandes/volvo-s-60-d5-momentum-1403253_2.jpg"
以下是我认为它应该如何工作:

string.gsub(/\\./,'')
但这也带来了:

"\"2014julgrandesvolvo-s-60-d5-momentum-1403253_3.jpg\""
我做错了什么

string.delete('\\\"')
这是一种可能的解决办法。但我肯定还有更好的


这是一种可能的解决办法。但我相信还有更好的方法。

你在regexp中无缘无故地有一个“点”。而不是:

string.gsub(/\\./,'')
尝试:

或者,归功于@sawa,试试这个:

string.tr('"\\','')
或者,归功于@Chirantan:

string.delete('"\\')

基准测试:

您在regexp中无缘无故地有一个“点”。而不是:

string.gsub(/\\./,'')
尝试:

或者,归功于@sawa,试试这个:

string.tr('"\\','')
或者,归功于@Chirantan:

string.delete('"\\')
基准测试:

另一个令人讨厌的使用方法。这只是为了好玩:-

string[/["\\]/] = '' until string[/["\\]/].nil?
# or
string[/["\\]/] = '' while string =~ /["\\]/
但是,
#gsub
是解决这个问题的更好方法。如果不想修改原始字符串,请使用而不是
string#[]=
。就是这样。

另一个讨厌的使用方法。这只是为了好玩:-

string[/["\\]/] = '' until string[/["\\]/].nil?
# or
string[/["\\]/] = '' while string =~ /["\\]/

但是,
#gsub
是解决这个问题的更好方法。如果不想修改原始字符串,请使用而不是
string#[]=
。就是这样。

string.gsub(/\\\/,'')使用此选项,它将返回“\”2014/7月/grandes/volvo-s-60-d5-momentum-1403253_2.jpg\”,这与outputHuhh不匹配。。我恨你……)对于这样的情况,使用
tr
@sawa更新了答案更有效。@sawa我删除了该评论,因为Chirantan已经将其作为answerstring.gsub(/\\\/,'')发布,通过使用它将返回“\”2014/jul/grandes/volvo-s-60-d5-momentum-1403253_2.jpg\”,这与outputHuhh不匹配。。我恨你……)对于这样的情况,使用
tr
@sawa更新了答案会更有效。@sawa我删除了这条评论,因为Chirantan已经发布了这样一条消息:作为答案,您的字符串不包含双反斜杠,它看起来是这样的:
“2014\/jul\/grandes\/volvo-s-60-d5-momentum-1403253_2.jpg”
。请注意,引号是字符串的一部分,即字符串以
字符开头。您的字符串不包含双反斜杠,如下所示:
“2014\/jul\/grandes\/volvo-s-60-d5-momentum-1403253_2.jpg”
。请注意引号是字符串的一部分,即字符串以
开头
character.@Chirantan哦,我在不经意地检查基准测试。谢谢你的编辑,好的。你把我自己改变的答案归功于我。我认为这应该反映出。但无论如何…@Chirantan哦,我是在不假思索地检查基准。谢谢你的编辑,好的。你把我自己改变的答案归功于我。我认为这应该反映出。但无论如何…