0

我有这个字符串

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

4 回答 4

3

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

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

所以

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

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

或者

s.sub!(' on', ' ')
于 2013-06-20T14:33:18.273 回答
2

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

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

p s.gsub " on ", " "
#=> "03:23 PM 09/04/12"
于 2013-06-20T14:25:39.540 回答
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"
于 2013-06-20T14:24:28.087 回答
0
s ="03:23 PM on 09/04/12"
s.gsub(' on ', ' ')
#>> "03:23 PM 09/04/12"

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

于 2013-06-20T14:24:37.107 回答