Ruby替换字符串的部分

时间:2013-06-20 14:21:26

标签: ruby string

我有这个字符串

s = "03:23 PM on 09/04/12"

我想取出'on'并用一个空格替换它''。我认为字符串的gsub方法和正则表达式是最好的解决方案。我不知道为什么这不起作用。

s ="03:23 PM on 09/04/12"
s.gsub(/ on /, ' ')
puts s
#=> "03:23 PM on 09/04/12"

4 个答案:

答案 0 :(得分:3)

字符串的gsub方法返回修改后的字符串,并保留对象字符串。如果要就地修改对象,则必须使用gsub!

此外,如果您只想更改一次,那么sub可能是您最好的选择。

所以

s = "03:23 PM on 09/04/12"

s = s.sub(' on ', ' ')

s.sub!(' on', ' ')

答案 1 :(得分:2)

对我来说很好......也许你打算使用gsub!

>> s ="03:23 PM on 09/04/12"
=> "03:23 PM on 09/04/12"
>> s.gsub(/ on /, ' ')
=> "03:23 PM 09/04/12"
>> s.gsub!(/ on /, ' ')
=> "03:23 PM 09/04/12"
>> s
=> "03:23 PM 09/04/12"

答案 2 :(得分:2)

您不需要将regexp对象用于gsub参数(/ on /),您也可以使用字符串 - 这对我有用!

s = "03:23 PM on 09/04/12"

p s.gsub " on ", " "
#=> "03:23 PM 09/04/12"

答案 3 :(得分:0)

s ="03:23 PM on 09/04/12"
s.gsub(' on ', ' ')
#>> "03:23 PM 09/04/12"

在这种情况下,您可以不使用regex,但如果您想使用regex,请使用s.gsub!(/ on /, ' ')