Функция regexp.Compile

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

Синтаксис

goregexp.Compile(pattern string) (*regexp.Regexp, error)

Пример

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

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re, err := regexp.Compile(`\d+`)
  if err != nil {
    fmt.Println("Error compiling regexp:", err)
    return
  }

  res := re.FindString("12345")
  fmt.Println(res)
}

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

go"12345"

Пример

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

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re, err := regexp.Compile(`[a-z]+`)
  if err != nil {
    fmt.Println("Error compiling regexp:", err)
    return
  }

  res := re.FindString("abcde")
  fmt.Println(res)
}

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

go"abcde"

Пример

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

gopackage main

import (
  "fmt"
  "regexp"
)

func main() {
  re, err := regexp.Compile(`[a-z+`)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println(re)
}

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

go"Error: error parsing regexp: missing closing ]: `[a-z+`"

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

  • функцию regexp.MustCompile,
    которая компилирует регулярное выражение и паникует при ошибке
  • функцию regexp.CompilePOSIX,
    которая компилирует выражение в стиле POSIX ERE
  • функцию regexp.MustCompilePOSIX,
    которая компилирует выражение POSIX и паникует при ошибке
  • функцию regexp.QuoteMeta,
    которая экранирует все специальные символы в строке