2012-05-04 61 views
0

我已經使用了一個好的一點,我無法自己找出這個正則表達式。我想拿起之間發生的一週中的每一天「確認日:」和「all_exception_rules」文本:Ruby正則表達式:在一個模式後返回多個匹配

要搜索的字符串:

---紅寶石/對象! 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 interval:1 week_start :: sunday:base_hour: - !ruby/object:IceCube :: Validations :: ScheduleLock :: Validation type :: hour:base_min: - !ruby/object:IceCube :: Validations :: ScheduleLock :: Validation type :: min:base_sec: - !ruby/object:IceCube :: Validations :: ScheduleLock :: Validation type :: sec:day: - !ruby/object:IceCube ::驗證::天::確認日: - 週一 - 週二 - 週三 - 週四 - 週五 all_exception_rules:[]

我能得到rubular最接近的是:/Validation day: - (.*) all_exception/。這會在所有日子(加上空格和破折號)中出現,但在我的Rails應用程序中返回Nil

  • 任何想法,爲什麼這會適用於rubular,但不是我的應用程序?

  • 有沒有一種簡單的方法來挑選沒有空格和 破折號的日子的數組?

回答

2

這有幫助嗎?

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

或者:

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

這些都返回的日子,我可以工作的數組。我想是時候再看看String#掃描了。謝謝! – rringler

相關問題