如何删除第一个空格或指定数量字符后的所有内容?

3

我有一个需要在Ruby中简化的日期字符串:

2008-10-09 20:30:40

我只需要日期部分:
2008-10-09

我正在寻找一行gsub代码,可以删除指定数量的字符或第一个空格之后的所有内容。
4个回答

6

我更喜欢使用尽可能简单的解决方案。使用gsub过于复杂。以下两种方法都可以实现:

str = '2008-10-09 20:30:40'
str[/(\S+)/, 1] #=> "2008-10-09"
str[0, 10] #=> "2008-10-09"

2

直接解决方案:

date.gsub(/(.{10}).*/, '\1')

date.gsub(/\s.*/, '')

date[0, 10]

更好的解决方案:将其视为 DateTime 对象 - 然后您可以按照自己的意愿进行格式化:
date = DateTime.now
date.strftime("%m-%d-%Y") # America
date.strftime("%d-%m-%Y") # Europe

它们似乎返回的是时间?而不是日期? - Ryan Teuscher

1
如果格式始终如此,
'2008-10-09 20:30:40'[/[-\d]+/] # => "2008-10-19"

0
'2008-10-09 20:30:40'.split[0]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接