Метод regexp.Regexp.Split

Метод Split разделяет исходную строку на подстроки, используя регулярное выражение в качестве разделителя. Первым параметром метод принимает строку для разделения, вторым параметром - количество подстрок, которое нужно вернуть. Если указать -1, то будут возвращены все подстроки. Метод возвращает слайс строк.

Синтаксис

gore.Split(s string, n int) []string

Пример

Давайте разделим строку "a,b,c,d,e" по запятой:

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re := regexp.MustCompile(`,`)
  res := re.Split("a,b,c,d,e", -1)
  fmt.Println(res)
}

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

go[a b c d e]

Пример

Разделим строку "1,2,3,4,5" по запятой, но вернем только первые 3 подстроки:

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re := regexp.MustCompile(`,`)
  res := re.Split("1,2,3,4,5", 3)
  fmt.Println(res)
}

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

go[1 2 3,4,5]

Пример

Разделим строку "abc123def456ghi" по цифрам:

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re := regexp.MustCompile(`\d+`)
  res := re.Split("abc123def456ghi", -1)
  fmt.Println(res)
}

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

go[abc def ghi]

Пример

Разделим строку по пробелам и нескольким пробелам:

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re := regexp.MustCompile(`\s+`)
  res := re.Split("one   two  three four", -1)
  fmt.Println(res)
}

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

go[one two three four]

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

  • функцию regexp.Compile,
    которая компилирует регулярное выражение
  • функцию regexp.MustCompile,
    которая компилирует регулярное выражение с паникой при ошибке
  • метод Regexp.FindAllString,
    который находит все совпадения регулярного выражения в строке
  • метод Regexp.ReplaceAllString,
    который заменяет все совпадения регулярного выражения на другую строку