string用斜杠替换反斜杠

时间:2016-10-12 10:06:38

标签: go

我需要在路径字符串中将\替换为/,但代码失败。

package main

import (
    "fmt"
    "strings"
)

func main() {
    string := "P:\Project\project-name/content/topic/"
    fmt.Println(strings.Replace(string, "\\", "/", -1))
}

有用的建议吗?

3 个答案:

答案 0 :(得分:4)

你没有在string中逃避反斜杠。以下代码有效:

package main

import (
    "fmt"
    "strings"
)

func main() {
    string := "P:\\Project\\project-name/content/topic/"
    fmt.Println(strings.Replace(string, "\\", "/", -1))
}

在游乐场播放:https://play.golang.org/p/T3XE5uiIkk

答案 1 :(得分:4)

使用函数filepath.ToSlash将操作系统路径分隔符替换为' /'在路上。

在Windows上,该函数返回strings.Replace(path, string(filepath.Separator), "/", -1)。在其他操作系统上,该函数按原样返回路径参数。

答案 2 :(得分:0)

您还可以使用反引号(`)来创建原始字符串:

func main() {
    string := `P:\Project\project-name/content/topic/`
    fmt.Println(strings.Replace(string, "\\", "/", -1))
}

请注意,上面的原始字符串仍将其内部表示为

"P:\\Project\\project-name/content/topic/"

因此需要在"\\"函数中使用strings.Replace