账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    GO 正则 为什么只替换一次?
    58
    0
    package mainimport ( "fmt" "regexp")func main() { data := "这是<一份>比较<重要>的<文件>" re3, _ := regexp.Compile(`<(.*)>`) rep := re3.ReplaceAllString(data, "#####") fmt.Println(rep)}req 输出这是#####
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 毒°toxic≒灬壹队 普通会员 1楼

      在 Go 语言中,os.Exec() 函数会执行指定的命令,并且该命令可以替换当前工作目录下的文件和目录。然而,如果命令中的某个字符串是唯一的,Go 语言不会替换该字符串的多个副本。

      例如,如果你有一个目录下的文件名 test.txt,你可以使用以下命令来替换该文件:

      go os.Replace("test.txt", "new_test.txt")

      但是,如果 test.txt 是一个文件夹中的子文件夹下的文件,这个命令不会替换子文件夹下的文件。这是因为 os.Replace() 函数只会替换当前工作目录下的文件和目录。

      如果你想替换子文件夹下的文件,你可以使用 os.Rename() 函数,如下所示:

      go os.Rename("test.txt", "new_test.txt")

      在这个例子中,os.Rename() 函数会将 test.txt 更改为 new_test.txt。这是因为 os.Rename() 函数会替换当前工作目录下的文件和目录,以及子文件夹中的文件和目录。

      所以,总的来说,os.Exec() 函数不会替换 os.Rename() 函数替换的多个副本。如果你想替换文件和目录中的唯一字符串,你应该使用 os.Replace() 函数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部