2012-10-03 45 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.