-1
print('What is the day and hour (ex., Monday 08AM): ')
appoint = gets.slice[0..-4]
puts(appoint)

正在返回此错误:

/scope.rb:2:in slice': wrong number of arguments (0 for 1..2) (ArgumentError) from /scope.rb:2:in'

还尝试slice[appoint.length..-4]了一些其他的东西。

通过阅读其他问题,我了解到这就是这样一个切片的完成方式。我不熟悉正则表达式模式。我实际上也希望能够返回星期几,这可能意味着from -5 back to inputeverything up until the space使用某种正则表达式模式。

4

2 回答 2

2

你想要这个吗 ?

appoint = gets.slice(-4,4)

因为Monday 08AM它返回:

08AM

您可以像这样使用切片:slice(start, length).

在你的情况下startis-4lengthis 4

编辑 或只有括号:

appoint = gets[-4..-1]

字符串也是一个字符数组。

于 2012-09-10T07:16:32.783 回答
1

Regex exmaple:

s = "Monday 08AM"

day = /[a-zA-Z]+/
s[day]
=> "Monday"

# \d? to also catch 8AM without 0 at the start
hour = /\d?\d[paPA][mM]/
s[hour]
=> "08AM" 

Regex tutorial from Ruby 1.9.3 docs

于 2012-09-10T07:28:01.213 回答