我在Go中有一个字符串,如下所示:
Hello world ! <a href=\"www.google.com\">Google</a>
引号已转义,我想获取不带反斜杠的字符串。
我尝试使用html.UnescapeString
,但没有使用我想要的。我的问题有什么解决办法吗?
答案 0 :(得分:1)
func NewReplacer(oldnew ... string)*替换器
package main
import (
"bytes"
"fmt"
"log"
"strings"
"golang.org/x/net/html"
)
func main() {
const htm = `
Hello world ! <a href=\"www.google.com\">Google</a>
`
// Code to get the attribute value
var out string
r := bytes.NewReader([]byte(htm))
doc, err := html.Parse(r)
if err != nil {
log.Fatal(err)
}
var f func(*html.Node)
f = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "a" {
for _, a := range n.Attr {
out = a.Val
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
f(c)
}
}
f(doc)
// Code to format the output string.
rem := `\"`
rep := strings.NewReplacer(rem, " ")
fmt.Println(rep.Replace(out))
}
输出:
www.google.com
答案 1 :(得分:1)
我想得到没有反斜杠的字符串。
这是一个简单的问题,但现有的两个答案对于这样简单的问题来说都太复杂了。
package main
import (
"fmt"
"strings"
)
func main() {
s := `Hello world ! <a href=\"www.google.com\">Google</a>`
fmt.Println(s)
fmt.Println(strings.Replace(s, `\"`, `"`, -1))
}
在 https://play.golang.org/p/7XX7jJ3FVFt 尝试
HTH
答案 2 :(得分:0)
假设您使用的是{% for item in files %} {{item.find('string')}} {% endfor %}
,则要么要将整个内容存储为html/template
,要么将URL存储为template.HTML
。您可以在此处查看操作方法:https://play.golang.org/p/G2supatMfhK
template.URL