Ruby Regex:在模式后返回多个匹配项

时间:2012-05-04 18:17:56

标签: ruby regex capture

我现在用Google搜索了一下,我自己也无法弄清楚这个正则表达式。我想了解“验证日:”和“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 ::验证间隔:1 week_start :: sunday:base_hour: - !ruby / object:IceCube :: Validations :: ScheduleLock ::验证类型:: hour:base_min : - !ruby / object:IceCube :: Validations :: ScheduleLock ::验证类型:: min:base_sec: - !ruby / object:IceCube :: Validations :: ScheduleLock ::验证类型:: sec:day: - !ruby / object:IceCube :: Validations :: Day :: Validation day: - 星期一 - 星期二 - 星期三 - 星期四 - 星期五 all_exception_rules:[]

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

  • 知道为什么这会对rubular起作用,而不是我的应用程序?

  • 是否有一种简单的方法来获取没有空格的日子数组 破折号?

1 个答案:

答案 0 :(得分:2)

这有帮助吗?

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

或者:

s.scan(/-\s(\w+)\s/).map(&:first).join(" ") 
#=> "monday tuesday wednesday thursday friday"