Функция regexp.MustCompile

Функция regexp.MustCompile компилирует регулярное выражение в объект Regexp. В отличие от regexp.Compile, эта функция не возвращает ошибку, а вызывает панику при некорректном синтаксисе регулярного выражения. Первый и единственный параметр принимает строку с регулярным выражением для компиляции.

Синтаксис

goregexp.MustCompile(pattern)

Пример с простым выражением

Давайте скомпилируем регулярное выражение для поиска цифр в строке:

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re := regexp.MustCompile(`\d+`)
  res := re.FindString("abc123def456")
  fmt.Println(res)
}

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

go"123"

Пример с некорректным выражением

При передаче некорректного регулярного выражения функция вызывает панику:

gopackage main

import "regexp"

func main() {
  re := regexp.MustCompile(`[a-z`)
  _ = re
}

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

gopanic: regexp: Compile(`[a-z`): missing closing ]

Пример с глобальной переменной

Функция часто используется для инициализации глобальных переменных на уровне пакета:

gopackage main

import (
  "fmt"
  "regexp"
)

var digitRegexp = regexp.MustCompile(`\d+`)

func main() {
  res := digitRegexp.FindAllString("123 456 789", -1)
  fmt.Println(res)
}

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

go[123 456 789]

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

  • функцию regexp.Compile,
    которая компилирует выражение с возвратом ошибки
  • функцию regexp.MustCompilePOSIX,
    которая компилирует выражение в стиле POSIX с паникой
  • функцию regexp.CompilePOSIX,
    которая компилирует выражение в стиле POSIX с возвратом ошибки
  • функцию regexp.Match,
    которая проверяет соответствие строки регулярному выражению