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

regexp.Regexp.FindSubmatch

Метод Regexp.FindSubmatch выполняет поиск первого совпадения с регулярным выражением в переданном байтовом срезе. Он возвращает срез байтовых срезов, где нулевой элемент — это полное совпадение, а последующие элементы — содержимое групп захвата. Если совпадений не найдено, метод возвращает nil. Первым параметром метод принимает байтовый срез для поиска.

Синтаксис

re.FindSubmatch(b []byte) [][]byte

Пример

Давайте найдем первое совпадение с группой захвата в байтовом срезе:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d+)-([a-z]+)`) res := re.FindSubmatch([]byte("123-abc 456-def")) fmt.Printf("%q", res) }

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

["123-abc" "123" "abc"]

Пример

Поиск без групп захвата вернет только полное совпадение:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+-\w+`) res := re.FindSubmatch([]byte("123-abc 456-def")) fmt.Printf("%q", res) }

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

["123-abc"]

Пример

Если совпадений нет, метод возвращает nil:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d{4}`) res := re.FindSubmatch([]byte("123-abc")) fmt.Printf("%q", res) }

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

[]

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

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