Функция strconv.Unquote
Функция strconv.Unquote выполняет распаковку строки,
которая была заключена в кавычки и содержит экранированные
символы. Она принимает один параметр - строку с кавычками
(например, "hello\nworld" или `hello`) и возвращает
распакованную строку, а также ошибку, если распаковка
невозможна.
Функция поддерживает все стандартные управляющие
последовательности, такие как \n, \t, \r,
а также восьмеричные и шестнадцатеричные экранирования.
Строка должна быть заключена в двойные кавычки
("...") или обратные кавычки (`...`).
Синтаксис
strconv.Unquote(s)
Пример
Давайте распакуем строку с экранированным символом новой строки:
package main
import (
"fmt"
"strconv"
)
func main() {
res, err := strconv.Unquote("hello\\nworld")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"hello
world"
Пример
Давайте распакуем строку с табуляцией и кавычками внутри:
package main
import (
"fmt"
"strconv"
)
func main() {
res, err := strconv.Unquote("\"hello\\tworld\\\"\"")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"hello world""
Пример
Давайте попробуем распаковать строку, заключенную в обратные кавычки:
package main
import (
"fmt"
"strconv"
)
func main() {
res, err := strconv.Unquote("`hello\\nworld`")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"hello\\nworld"
Обратите внимание: в строке с обратными кавычками
экранирование не обрабатывается, поэтому \\n
остается как два символа.
Смотрите также
-
функцию
strconv.Quote,
которая выполняет экранирование строки с добавлением кавычек -
функцию
strconv.UnquoteChar,
которая распаковывает один экранированный символ -
функцию
strconv.QuoteToASCII,
которая экранирует строку в ASCII-представление -
функцию
strconv.CanBackquote,
которая проверяет возможность использования обратных кавычек