繁体   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