[英]Remove double backslash from string with Ruby
我有以下字符串:
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\""
我究竟做错了什么?
您无故在regexp中有一个“点”。 代替:
string.gsub(/\\./,'')
尝试:
string.gsub(/["\\]/,'')
或者,将积分计入@sawa,请尝试以下方法:
string.tr('"\\','')
或者,归功于@Chirantan:
string.delete('"\\')
string.delete('\\\"')
是一种可能的解决方案。 但是我敢肯定那里有更好的。
使用String#[]=
方法的另一个讨厌的人 。 这只是为了好玩:-
string[/["\\]/] = '' until string[/["\\]/].nil?
# or
string[/["\\]/] = '' while string =~ /["\\]/
但是#gsub
是解决此问题的更好方法。 如果您不想修改原始字符串 ,请使用String#slice
而不是String#[]=
。 而已。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.