3

在这种方法中:

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)

}

似乎第二个参数是关于它匹配的次数。我对吗?谁能给我一个肯定的答案?官方文档或一些链接是首选。

4

1 回答 1

11

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

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

于 2012-04-23T16:08:41.290 回答