Golang:逃避单引号

时间:2015-10-16 12:30:03

标签: go escaping backslash quote

有没有办法逃避单引号?

以下内容:

str := "I'm Bob, and I'm 25."
str = strings.Replace(str, "'", "\'", -1)

给出错误:未知转义序列:'

我想成为

"I\'m Bob, and I\'m 25."

3 个答案:

答案 0 :(得分:22)

你还需要在strings.Replace中删除斜杠。

str := "I'm Bob, and I'm 25."
str = strings.Replace(str, "'", "\\'", -1)

https://play.golang.org/p/mZaaNU3FHw

答案 1 :(得分:10)

+到@KeylorSanchez回答:你可以在后面的方法中包换替换字符串:

strings.Replace(str, "'", `\'`, -1)

答案 2 :(得分:-1)

// 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()
}

如果要转义单/双引号或反斜杠,可以参考https://github.com/syyongx/php2go