这只是一个一般性的“我的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"]]