[英]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.