切片最后4个,或者用Ruby处理这个输入/输出模式?

切片最后4个,或者用Ruby处理这个输入/输出模式?,ruby,regex,slice,Ruby,Regex,Slice,正在返回此错误: /scope.rb:2:inslice”:参数数量错误(0代表1..2)(ArgumentError) from/scope.rb:2:in' 还尝试了切片[appoint.length..-4]和其他一些方法 通过阅读其他问题,我得出结论,这就是这样一个切片是如何完成的。我不熟悉正则表达式的模式。实际上,我也希望能够返回一周中的某一天,这可能意味着从-5返回到输入或直到空格的所有内容,使用某种正则表达式模式。您想要这个吗 print('What is the day and

正在返回此错误:

/scope.rb:2:in
slice”:参数数量错误(0代表1..2)(ArgumentError)
from/scope.rb:2:in
'

还尝试了
切片[appoint.length..-4]
和其他一些方法

通过阅读其他问题,我得出结论,这就是这样一个切片是如何完成的。我不熟悉正则表达式的模式。实际上,我也希望能够返回一周中的某一天,这可能意味着
从-5返回到输入
直到空格的所有内容
,使用某种正则表达式模式。

您想要这个吗

print('What is the day and hour (ex., Monday 08AM): ')
appoint = gets.slice[0..-4]
puts(appoint)
对于
周一上午8点
,它返回:

appoint = gets.slice(-4,4)
您可以这样使用切片:
slice(开始,长度)

在您的情况下,
start
-4
length
4

编辑 或仅使用括号:

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

Regex-exmaple:

appoint = gets[-4..-1]

这就是我要找的。谢谢。它不起作用,所以我还没有接受。我也希望有人能谈谈处理这个字符串的更好方法。@Wolfpack'08:如果你想用括号代替
切片
^^^,我更新了我的答案,就像我认为你可以做
/\w/
/[:word:]/
一样,对吗?是的,对于你的特定字符串,它也可以工作。我只是想到,
\w
也包括数字,
[:word:]
也包括标记、数字和连接器标点符号,所以我这样写的时候没有考虑太多;)
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"