10

我有这个表达:

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

它工作正常。但是,我只能用它替换 1 个字符。我想添加更多字符来替换。所以我尝试了以下方法:

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

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

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

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

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

 ' ; :

我的问题:

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

  2. gsub 发生了什么!上面作为它返回一个空白。

4

2 回答 2

18

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

试试这个:

channelName = rhash["Channel"].gsub(/[':;]/, " ")
于 2013-08-12T17:53:39.877 回答
5

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

channelName = rhash["Channel"].tr("':;", " ")
于 2013-08-12T18:39:54.540 回答