2012-04-23 2 views
2

В этом методе:В Regexp.FindAllStringSubmatch(), что делает второй параметр?

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) 

} 

кажется, что второй параметр о том, сколько раз он соответствует. Я прав? Может ли кто-нибудь дать мне ответ наверняка? Предпочитает официальный документ или некоторые ссылки.

+0

Ваш пример затрудняет подтверждение результата, но попробуйте поэкспериментировать с http://play.golang.org/p/ViFmaXfEhm, чтобы увидеть его лучше. – hyperslug

+0

Также пришел сюда, потому что просматривал уровень функции и не понимал, что информация была наверху в разделе обзора. –

ответ

7

Цитирование из главной секции http://golang.org/pkg/regexp/:

Если «Все» присутствует, то процедура совпадения последовательных неперекрывающиеся матчей всего выражения. Пустые совпадения, совпадающие с предыдущим совпадением, игнорируются. Возвращаемое значение представляет собой срез, содержащий последовательные возвращаемые значения соответствующей не-«All». Эти подпрограммы принимают дополнительный целочисленный аргумент, n; если n> = 0, функция возвращает не более n совпадений/подматричек.

+0

О, это моя вина. Я просто получил прямо к разделу о методе и пропустил раздел обзора. Я должен прочитать это от начала до конца. Я прочитаю это сейчас. – hardPass

Смежные вопросы