正确使用ruby字符串中的gsub

时间:2013-08-12 17:50:26

标签: ruby string gsub

我有这个表达:

channelName = rhash["Channel"].gsub("'", " ")

它工作正常。但是,我只能用它替换1个字符。我想为替换添加一些字符。所以我尝试了以下内容:

channelName = rhash["Channel"].gsub(/[':;] /, " ")

这不起作用,即没有对字符串进行替换并且没有错误消息。我也试过这个:

channelName = rhash["Channel"].gsub!("'", " ")

这会导致字符串为空白。所以绝对不是我想要的。

我想有一个gsub方法用我的字符串中的空格替换以下字符:

 ' ; :

我的问题:

  1. 如何构建我的gsub方法,以便用空格替换上述字符的所有实例?

  2. gsub发生了什么事!以上为空白。

2 个答案:

答案 0 :(得分:15)

你的第二次尝试非常接近。问题是你在结束括号后留下了一个空格,这意味着它只是寻找其中一个符号后跟一个空格

试试这个:

channelName = rhash["Channel"].gsub(/[':;]/, " ")

答案 1 :(得分:4)

这不能解答您的问题,但这是一种更好的方法。

channelName = rhash["Channel"].tr("':;", " ")