0

我现在已经用谷歌搜索了很多,但我自己无法弄清楚这个正则表达式。我想收集在“验证日:”和“all_exception_rules”文本之间发生的一周中的所有日子:

要搜索的字符串:

--- !ruby/object:IceCube::Schedule start_time: 2012-04-28 13:38:49.334561000 -07:00 end_time: duration: all_recurrence_rules: - !ruby/object:IceCube::WeeklyRule 验证::interval: - !ruby/object:IceCube::Validations::WeeklyInterval::Validation 间隔:1 week_start::sunday :base_hour: - !ruby/object:IceCube::Validations::ScheduleLock::Validation 类型::hour :base_min: - ! ruby/object:IceCube::Validations::ScheduleLock::Validation 类型: :min :base_sec: - !ruby/object:IceCube::Validations::ScheduleLock::Validation 类型: :sec :day: - !ruby/object: IceCube::Validations::Day::Validation day: -周一 - 周二 - 周三 - 周四 - 周五all_exception_rules: []

我最接近 rubular 的是:/Validation day: - (.*) all_exception/. 这会以 rubular 形式显示所有天(加上空格和破折号),但会Nil在我的 rails 应用程序中返回。

  • 知道为什么这适用于rubular,但不适用于我的应用程序?

  • 有没有一种简单的方法可以在没有空格和破折号的情况下获取一系列日期?

4

1 回答 1

2

这有帮助吗?

s.scan(/-\s(\w+)\s/) 
#=> [["monday"], ["tuesday"], ["wednesday"], ["thursday"], ["friday"]]

或者:

s.scan(/-\s(\w+)\s/).map(&:first).join(" ") 
#=> "monday tuesday wednesday thursday friday"
于 2012-05-04T18:25:46.563 回答