РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
423 of 1593 menu

Метод regexp.Regexp.FindAllSubmatchIndex

Метод FindAllSubmatchIndex применяется к скомпилированному регулярному выражению и ищет все неперекрывающиеся совпадения в переданной строке. В отличие от метода FindAllSubmatch, который возвращает сами подстроки, данный метод возвращает индексы начала и конца для каждого найденного совпадения и для каждой захваченной подмаски. Первым параметром метод принимает строку для поиска, вторым параметром принимает максимальное количество совпадений, которое нужно найти.

Синтаксис

re.FindAllSubmatchIndex(str, n)

Пример

Давайте найдем все совпадения с индексами для подмасок в строке 'ab ab ab':

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(a)(b)`) str := "ab ab ab" res := re.FindAllSubmatchIndex(str, -1) fmt.Println(res) }

Результат выполнения кода:

[[0 2 0 1 1 2] [3 5 3 4 4 5] [6 8 6 7 7 8]]

Пример

Давайте найдем первые два совпадения с индексами в строке '12345 67890':

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d)(\d)`) str := "12345 67890" res := re.FindAllSubmatchIndex(str, 2) fmt.Println(res) }

Результат выполнения кода:

[[0 2 0 1 1 2] [1 3 1 2 2 3]]

Пример

Давайте найдем все совпадения с подмасками и индексами, используя более сложное выражение:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d+)-(\w+)`) str := "123-abc 456-def 789-ghi" res := re.FindAllSubmatchIndex(str, -1) fmt.Println(res) }

Результат выполнения кода:

[[0 7 0 3 4 7] [8 15 8 11 12 15] [16 23 16 19 20 23]]

Смотрите также

  • метод FindAllSubmatch,
    который возвращает сами подстроки всех совпадений
  • метод FindSubmatchIndex,
    который возвращает индексы для первого совпадения
  • метод FindAllStringSubmatchIndex,
    который является аналогом для строк
  • функцию MustCompile,
    которая компилирует регулярное выражение с паникой при ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить