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

时间:2011-05-23 01:08:15

标签: ruby regex

我需要在Ruby中简化日期字符串:

2008-10-09 20:30:40

我只想要一天的部分:

2008-10-09

我正在寻找一条gsub线,它会在一定数量的字符或第一个空格后删除所有内容。

4 个答案:

答案 0 :(得分:6)

我更喜欢尽可能简单地使用解决方案。使用gsub是不必要的复杂。其中任何一个都会这样做:

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

答案 1 :(得分: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

答案 2 :(得分:1)

如果格式一直如此,

'2008-10-09 20:30:40'[/[-\d]+/] # => "2008-10-19"

答案 3 :(得分:0)

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