这只是一个一般性的“我的regex有什么问题,它没有拉出所有我期望的”问题。
这是我的绳子:

"Mon 0900-1600 1700-2000"

我希望能抽出时间来。
这是我的regexp"0900-1600",虽然它能很好地找到时间的第一个匹配项,但它不会返回到第二个匹配项有人能告诉我为什么吗?
下面是我的实际代码片段:
str = "Mon 0900-1600 1700-2000"

/([0-9]{4}-[0-9]{4})/.match(str)  #<MatchData "0900-1600">

最佳答案

尝试改用string#scan

ruby-1.9.2-p136 :001 > str = "Mon 0900-1600 1700-2000"
 => "Mon 0900-1600 1700-2000"
ruby-1.9.2-p136 :002 > str.scan /([0-9]{4}-[0-9]{4})/
 => [["0900-1600"], ["1700-2000"]]

10-07 17:09