我有以下字符串:
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\""
我做错了什么?
答案 0 :(得分:5)
你无缘无故地在regexp中有一个“点”。而不是:
string.gsub(/\\./,'')
尝试:
string.gsub(/["\\]/,'')
或者,@ sawa的学分,请尝试这样做:
string.tr('"\\','')
或者归功于@Chirantan:
string.delete('"\\')
答案 1 :(得分:2)
string.delete('\\\"')
是一种可能的解决方案。但我相信那里有更好的。
答案 2 :(得分:0)
使用String#[]=
方法的另一个讨厌的。这只是为了好玩: -
string[/["\\]/] = '' until string[/["\\]/].nil?
# or
string[/["\\]/] = '' while string =~ /["\\]/
但#gsub
是解决此问题的更好方法。如果您不想修改原始字符串,请使用String#slice
代替String#[]=
。那就是它。