在go中有没有转义单引号的方法?以下:
str := "I'm Bob, and I'm 25." str = strings.Replace(str, "'", "\'", -1)
给出错误:未知转义序列:”我希望str是
"I\'m Bob, and I\'m 25."
sc4hvdpw1#
你还需要转义字符串中的斜杠。替换。
str := "I'm Bob, and I'm 25." str = strings.ReplaceAll(str, "'", "\\'")
https://play.golang.org/p/BPtU2r8dXrs
nukf8bse2#
+@KeylorSanchez回答:你可以把替换字符串用反引号括起来:
strings.ReplaceAll(str, "'", `\'`)
7z5jn7bk3#
// addslashes() func Addslashes(str string) string { var buf bytes.Buffer for _, char := range str { switch char { case '\'': buf.WriteRune('\\') } buf.WriteRune(char) } return buf.String() }
如果要转义单引号/双引号或backlash,可以参考https://github.com/syyongx/php2go
zmeyuzjn4#
strings.Replacer可以用来一次转义多个不同的字符。如果你想在不同的地方重用相同的逻辑,也很方便。
strings.Replacer
quoteEscaper := strings.NewReplacer(`'`, `\'`, `"`, `\"`) str := `They call me "Bob", and I'm 25.` str = quoteEscaper.Replace(str)
https://go.dev/play/p/6IFecrHmN3z
4条答案
按热度按时间sc4hvdpw1#
你还需要转义字符串中的斜杠。替换。
https://play.golang.org/p/BPtU2r8dXrs
nukf8bse2#
+@KeylorSanchez回答:你可以把替换字符串用反引号括起来:
7z5jn7bk3#
如果要转义单引号/双引号或backlash,可以参考https://github.com/syyongx/php2go
zmeyuzjn4#
strings.Replacer
可以用来一次转义多个不同的字符。如果你想在不同的地方重用相同的逻辑,也很方便。https://go.dev/play/p/6IFecrHmN3z