cpp

Регулярные выражения

Регулярные выражения дают возможность осуществить сложный поиск или замену в строке. В языке Go использовать регулярные выражения позволяют функции и методы из пакета regexp. Не забудьте добавить следующую инструкцию в начало программы:

import "regexp"

Создание шаблона регулярного выражения

Создать скомпилированный шаблон регулярного выражения позволяют следующие функции из пакета regexp:

  • MustCompile() — компилирует шаблон регулярного выражения и возвращает указатель на структуру Regexp. Если шаблон содержит ошибки, то вызывается паника, при которой программа досрочно завершается. Формат функции:
regexp.MustCompile(str string) *regexp.Regexp

Пример:

re := regexp.MustCompile(`[0-9]+`)
fmt.Println(re.MatchString("123")) // true
  • Compile() — аналог функции MustCompile(), но при ошибке не вызывает панику. Функция возвращает два значения. Через первое значение при успешной компиляции доступен указатель на структуру Regexp. Если шаблон содержит ошибки, то через второе возвращаемое значение доступно описание ошибки. Если ошибки нет, то возвращается значение nil. Формат функции:
regexp.Compile(expr string) (*regexp.Regexp, error)

Пример:

re, err := regexp.Compile(`[0-9]+`)
if err != nil {
   fmt.Println("Ошибка!", err)
   return
}
fmt.Println(re.MatchString("123")) // true
  • MustCompilePOSIX() — компилирует шаблон регулярного выражения формата POSIX и возвращает указатель на структуру Regexp. Если шаблон содержит ошибки, то вызывается паника, при которой программа досрочно завершается. Формат функции:
regexp.MustCompilePOSIX(str string) *regexp.Regexp

Пример:

re := regexp.MustCompilePOSIX(`[0-9]+`)
fmt.Println(re.MatchString("123")) // true
  • CompilePOSIX() — аналог функции MustCompilePOSIX(), но при ошибке не вызывает панику. Функция возвращает два значения. Через первое значение при успешной компиляции доступен указатель на структуру Regexp. Если шаблон содержит ошибки, то через второе возвращаемое значение доступно описание ошибки. Если ошибки нет, то возвращается значение nil. Формат функции:
regexp.CompilePOSIX(expr string) (*regexp.Regexp, error)

Пример:

re, err := regexp.CompilePOSIX(`[0-9]+`)
if err != nil {
   fmt.Println("Ошибка!", err)
   return
}
fmt.Println(re.MatchString("123")) // true

Получить строковое представление скомпилированного шаблона позволяет метод String(). Формат метода:

(*regexp.Regexp).String() string

Пример:

re := regexp.MustCompile(`[0-9]+`)
fmt.Println(re.String()) // [0-9]+

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp