Нередко нужно проверить верность входных данных, пройтись по документу в поисках определенной информации или даже очистить строку от нежелательных символов экранирования. Обычно для этого используются регулярные выражения.

В стандартной библиотеке Go есть пакет regexp, что нужен для операций с регулярными выражениями.

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

Как найти текст в строке с помощью регулярного выражения в Go?

1. Создайте файл regexp.go со следующим содержимым:

2. Запустите код через go run regexp.go;
3. Посмотрите на вывод в терминале:

поиск в строке go

Пакет Regexp — Функции FindString() и FindAllString()

Функции FindString и FindAllString являются самым простым способом поиска совпадающего паттерна в указанной строке. Единственное разница в том, что метод FindString из Regexp вернут только первое найденное совпадение. С другой стороны, метод FindAllString, на что намекает название, вернет срез строк со всеми найденными совпадениями.

Тип Regexp предлагает обширный набор методов с префиксом FindXXX. В данной инструкции описываются только вариации String, которые обычно наиболее полезны. Обратите внимание, что в предыдущем коде используется функция MustCompile из пакета regexp, что может привести к сбою в случае неправильного регулярного выражения.

Помимо сложно совпадающего паттерна регулярного выражения можно задействовать совпадение только подстрок. Данный подход был описан в теме Поиск слов в строке.