Функция bytes.Index
Функция bytes.Index ищет первое вхождение подстроки
в байтовом срезе и возвращает его индекс (позицию).
Первый параметр функции — байтовый срез, в котором выполняется поиск.
Второй параметр — байтовый срез с подстрокой для поиска.
Если подстрока не найдена, функция возвращает -1.
Функция чувствительна к регистру.
Синтаксис
bytes.Index(s, sep)
Пример
Давайте найдем позицию подстроки 'cd'
в байтовом срезе 'abcde':
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
sub := []byte("cd")
res := bytes.Index(s, sub)
fmt.Println(res)
}
Результат выполнения кода:
2
Пример
Давайте попробуем найти подстроку 'xyz'
в байтовом срезе 'abcde':
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
sub := []byte("xyz")
res := bytes.Index(s, sub)
fmt.Println(res)
}
Результат выполнения кода:
-1
Пример
Поиск подстроки в байтовом срезе с учетом регистра:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("Hello, World!")
sub := []byte("world")
res := bytes.Index(s, sub)
fmt.Println(res)
}
Результат выполнения кода:
-1
Смотрите также
-
функцию
bytes.Contains,
которая проверяет наличие подстроки в байтовом срезе -
функцию
bytes.IndexAny,
которая ищет позицию любого символа из набора -
функцию
bytes.LastIndex,
которая возвращает позицию последнего вхождения подстроки -
функцию
bytes.HasPrefix,
которая проверяет наличие префикса у байтового среза