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

Метод regexp.Regexp.FindStringSubmatchIndex

Метод FindStringSubmatchIndex используется для поиска первого совпадения с регулярным выражением в строке. В отличие от FindStringIndex, этот метод также возвращает индексы для каждой захваченной подгруппы. Метод возвращает срез целых чисел, который содержит пары индексов начала и конца каждого совпадения. Если совпадений не найдено, метод возвращает nil.

Синтаксис

re.FindStringSubmatchIndex(s string) []int

Первый и единственный параметр FindStringSubmatchIndex принимает строку, в которой нужно выполнить поиск.

Пример

Давайте найдем индексы для совпадения с регулярным выражением `(\d{2})-(\d{2})` в строке "12-34":

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d{2})-(\d{2})`) res := re.FindStringSubmatchIndex("12-34") fmt.Println(res) }

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

[0 5 0 2 3 5]

Индексы в срезе интерпретируются парами: первая пара (0, 5) — это индексы всего совпадения, вторая пара (0, 2) — индексы первой подгруппы ("12"), третья пара (3, 5) — индексы второй подгруппы ("34").

Пример

Рассмотрим случай, когда совпадение не найдено:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) res := re.FindStringSubmatchIndex("abc") fmt.Println(res) }

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

[]

В данном случае регулярное выражение ищет цифры, но строка не содержит цифр, поэтому возвращается пустой срез.

Пример

Метод возвращает индексы только первого совпадения, даже если в строке их несколько:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d+)`) res := re.FindStringSubmatchIndex("123 456 789") fmt.Println(res) }

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

[0 3 0 3]

Как видно, метод вернул индексы только для первого числа "123".

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить