我正在寻找regexp.QuoteMeta的反面。 它有这样的功能吗?
我尝试使用strings.Replace("\", "", -1)
手动取消它,但这很容易出错/不可靠,因为它在所有情况下都不起作用(即过度转义或unicode)。
我还尝试添加一些引号并使用strconv.Unquote (e.g. strconv.Unquote(
“+ "https:\/\/ad.doubleclick.net" +
”) )
,但错误输出。
答案 0 :(得分:3)
使用regexp/syntax包解析字符串以获取未加引号的字符串:
func unquoteMeta(s string) (string, error) {
r, err := syntax.Parse(s), 0)
if err != nil {
return "", err
}
if r.Op != syntax.OpLiteral {
return "", errors.New("not a quoted meta")
}
return string(r.Rune), nil
}