Функция bytes.Replace
Функция bytes.Replace заменяет первые n вхождений подстроки
old на строку new в исходном байтовом слайсе.
Первый параметр принимает исходный слайс байтов,
второй — подстроку для замены,
третий — строку для вставки,
четвертый — количество замен.
Если n меньше нуля, функция заменяет все вхождения.
Возвращает новый слайс байтов с выполненными заменами.
Синтаксис
bytes.Replace(s, old, new []byte, n int) []byte
Пример
Давайте заменим первые два вхождения подстроки '12'
в строке '12123412' на подстроку 'XX':
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("12123412")
old := []byte("12")
new := []byte("XX")
res := bytes.Replace(s, old, new, 2)
fmt.Println(string(res))
}
Результат выполнения кода:
"XXXX3412"
Пример
Теперь давайте заменим все вхождения подстроки 'ab'
в строке 'ababab' на подстроку '--',
передав четвертый параметр равным -1:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("ababab")
old := []byte("ab")
new := []byte("--")
res := bytes.Replace(s, old, new, -1)
fmt.Println(string(res))
}
Результат выполнения кода:
"--"--"--"
Пример
А если количество замен равно нулю, то исходный слайс
остается без изменений. Давайте проверим это на строке
'123123' с подстрокой '23':
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("123123")
old := []byte("23")
new := []byte("45")
res := bytes.Replace(s, old, new, 0)
fmt.Println(string(res))
}
Результат выполнения кода:
"123123"
Смотрите также
-
функцию
bytes.Contains,
которая проверяет наличие подстроки в байтовом слайсе -
функцию
bytes.ReplaceAll,
которая заменяет все вхождения подстроки -
функцию
bytes.Index,
которая возвращает позицию первого вхождения подстроки -
функцию
strings.Replace,
которая работает аналогично, но со строками