Первый раздел, очевидно, работает, как и ожидалось, поэтому все, что вы на самом деле спрашиваете, как преобразовать строку вроде:
"u=https-3A__www.youtube.com_watch-3Fv-3D4RkZAfD-2JHeM&d="
В строку вроде:
"u=https%3A//www.youtube.com/watch%3Fv%3D4RkZAfD%2JHeM&d="
Это очень просто, регулярные выражения не требуются ...
m2 := strings.Replace(m, "-", "%", -1)
m2 = strings.Replace(m2, "_", "/", -1)
desired := "u=https%3A//www.youtube.com/watch%3Fv%3D4RkZAfD%2JHeM&d="
if m2 == desired {
fmt.Printf(" success: %q\n", m2)
} else {
fmt.Println("fail!")
}
Вот оно в действии: https://play.golang.org/p/yWCJz7jTw2l