簡體   English   中英

使用Ruby從字符串中刪除雙反斜杠

[英]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('"\\')

基准: http//gist.github.com/dominikh/208915

string.delete('\\\"')

是一種可能的解決方案。 但是我敢肯定那里有更好的。

使用String#[]=方法的另一個討厭的人 這只是為了好玩:-

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

但是#gsub是解決此問題的更好方法。 如果您不想修改原始字符串 ,請使用String#slice而不是String#[]= 而已。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM