在Regexp.FindAllStringSubmatch()中,第二个参数有什么作用?

时间:2012-04-23 15:54:15

标签: regex go

在这种方法中:

func (re *Regexp) FindAllStringSubmatch(s string, n int) [][]string

第二个参数有什么作用? 我试过了:

re, _ := regexp.Compile("a")
rs := re.FindAllString("aaaaa, ", **1**) // 1 get one 'a', 2 get two 'a's, 3 get three 'a's ...
for _,v := range rs {
    fmt.Println(v)

}

似乎第二个参数是关于它匹配的次数。我对吗? 有人可以给我一个答案吗?官方文档或某些链接是首选。

1 个答案:

答案 0 :(得分:7)

来自http://golang.org/pkg/regexp/的概述部分的引文:

  

如果存在“全部”,则例程匹配整个表达式的连续非重叠匹配。邻接前一个匹配的空匹配将被忽略。返回值是一个包含相应非''All'例程的连续返回值的切片。 这些例程采用额外的整数参数n;如果n> = 0,则该函数最多返回n个匹配/子匹配。