Метод regexp.Regexp.NumSubexp
Метод NumSubexp возвращает общее количество подвыражений
(захватывающих групп) в скомпилированном регулярном выражении.
Подвыражениями считаются группы, заключенные в круглые скобки
() в шаблоне. Метод не принимает никаких параметров и
возвращает значение типа int. Важно отметить, что
счетчик включает как именованные, так и неименованные группы.
Нулевое подвыражение (все совпадение целиком) не учитывается.
Синтаксис
re.NumSubexp()
Пример
Давайте создадим регулярное выражение с двумя захватывающими группами и проверим, сколько подвыражений оно содержит:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(\d{3})-(\d{2})`)
res := re.NumSubexp()
fmt.Println(res)
}
Результат выполнения кода:
2
Пример
Рассмотрим регулярное выражение без захватывающих групп:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
res := re.NumSubexp()
fmt.Println(res)
}
Результат выполнения кода:
0
Пример
Проверим работу метода с именованными группами и вложенными подвыражениями:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})`)
res := re.NumSubexp()
fmt.Println(res)
}
Результат выполнения кода:
3
Смотрите также
-
метод
SubexpNames,
который возвращает имена всех подвыражений -
метод
SubexpIndex,
который возвращает индекс подвыражения по его имени -
функцию
Compile,
которая компилирует регулярное выражение -
функцию
MustCompile,
которая компилирует регулярное выражение с паникой при ошибке