【发布时间】:2013-08-14 03:27:50
【问题描述】:
我有这样的表达方式:
channelName = rhash["Channel"].gsub("'", " ")
它工作正常。但是,我只能用它替换 1 个字符。我想添加更多字符来替换。所以我尝试了以下方法:
channelName = rhash["Channel"].gsub(/[':;] /, " ")
这不起作用,即没有对字符串进行替换,也没有错误消息。我也试过这个:
channelName = rhash["Channel"].gsub!("'", " ")
这导致一个空白字符串。所以绝对不是我想要的。
我想要一个 gsub 方法来用我的字符串中的空格替换以下字符:
' ; :
我的问题:
如何构造我的 gsub 方法,以便将上述字符的所有实例都替换为空格?
gsub 发生了什么!以上作为它返回一个空白。
【问题讨论】:
-
空格在正则表达式中很重要...
-
@meagar 除非您使用
x选项对吗? ruby-doc.org/core-2.0/Regexp.html#label-Options -
为什么不将
String#tr用于这样的简单事情? -
@muistooshort 太棒了,谢谢。是的,我什至没有看过那个方法。这就是我喜欢 SO 的原因,总有一种解决问题的新方法要学习.......谢谢!我会试试的。一个快速的问题。 “tr”方法比gsub更高效吗?
-
tr可能比gsub快,但是 (a) 正则表达式引擎可能会非常快,(b) 差异可能与所有实际目的无关,并且 (c) 你总是可以@ 987654323@看看。