Во время создания программы зачастую требуется заменить определенную подстроку внутри строки. В стандартной библиотеке Go есть функция Replace и тип Replacer для замены сразу нескольких строк.
Как заменить части строки в Golang?
1. Создайте файл replace.go со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import ( "fmt" "strings" ) const refString = "Mary had a little lamb" const refStringTwo = "lamb lamb lamb lamb" func main() { out := strings.Replace(refString, "lamb", "wolf", -1) fmt.Println(out) out = strings.Replace(refStringTwo, "lamb", "wolf", 2) fmt.Println(out) } |
2. Запустите код через go run replace.go;
3. Посмотрите на вывод в терминале:

4. Создайте файл replacer.go со следующим содержимым:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import ( "fmt" "strings" ) const refString = "Mary had a little lamb" func main() { replacer := strings.NewReplacer("lamb", "wolf", "Mary", "Jack") out := replacer.Replace(refString) fmt.Println(out) } |
5. Запустите код через go run replacer.go;
6. Посмотрите на результат в терминале:

Замена текста в строке используя регулярные выражения
7. Создайте файл regexp.go со следующим содержимым:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import ( "fmt" "regexp" ) const refString = "Mary had a little lamb" func main() { regex := regexp.MustCompile("l[a-z]+") out := regex.ReplaceAllString(refString, "replacement") fmt.Println(out) } |
8. Запустите код через go run regexp.go;
9. Посмотрите на результат в терминале:

Функция Replace() — Подробное описание
Функция Replace из пакета strings часто используется для простой замены. Последний целочисленный аргумент определяет, сколько будет выполнено замен. В случае с -1 заменяются все строки. Во втором случае использования Replace производится только две замены. Использование функции Replace описано в шагах 1-3.
Помимо функции Replace, в структуре Replacer также есть метод WriteString. Данный метод запишет все замены, определенные в Replacer. Главное предназначение данного типа в возможности его повторного использования. Он может сразу заменить несколько строк, что безопасно для конкурентного использования. Это показано в шагах 4-6.
Более сложным методом замены подстроки или даже совпадающего паттерна является использование регулярного выражения. Тип указателя Regex метода ReplaceAllString может использоваться для этих целей. На этапах 7-9 показано использование пакета regexp.
Когда требуется более сложная логика замены, лучше всего использовать пакет regexp и регулярные выражения.

Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»