2012-10-03 200 views
-3

爲什麼一個正則表達式在掃描和匹配方法上表現不同?正則表達式混淆

str = "A man, a plan, a canal -- Panama" 

/\w+/.match(str).to_s #=> #<MatchData "A"> i.e. just "A" 

str.scan(/\w+/)  #=> ["A", "man", "a", "plan", "a", "canal", "Panama"] 

該方法應該帶來相同的結果,不應該嗎?

+0

你沒有顯示任何研究工作 – keyser

回答

4

match只會返回第一個匹配項,因爲這就是它的作用,而scan將返回所有匹配項。使用的正則表達式實際上的工作原理完全相同。 See this.