我正在寻找 regexp.QuoteMeta 的反面. 有这样的功能吗?
我尝试使用 strings.Replace("\", "", -1)
手动取消转义,但这很容易出错/不可靠,因为它在所有案例(即过度转义或 unicode)。
我还尝试添加一些引号并使用 strconv.Unquote (例如 strconv.Unquote(
"+ "https:\/\/ad.doubleclick.net"+
") )
但它出错了.
最佳答案
用 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
}
关于regex - 如何取消转义转义的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752821/