我有这个字符串
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"
答案 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 /, ' ')