Printing 当使用bytes.replace时,是否有使用通配符的方法?

Printing 当使用bytes.replace时,是否有使用通配符的方法?,printing,replace,byte,go,wildcard,Printing,Replace,Byte,Go,Wildcard,我在Go中编程,我在Go中读取一个文本文件,并替换其中的多个内容,以便将代码从一种语言翻译成Go,以便能够运行。我遇到的问题是,当试图替换Println语句之类的语句时,如果不是真正特定于正在转换的代码,我就无法在语句的末尾获得括号。有没有一种方法可以像这样使用代码 src = bytes.Replace(src, []byte("Insert"), []byte("Println(" * ")"), -1) 并且能够在代码行的末尾放一个括号 package main import (

我在Go中编程,我在Go中读取一个文本文件,并替换其中的多个内容,以便将代码从一种语言翻译成Go,以便能够运行。我遇到的问题是,当试图替换Println语句之类的语句时,如果不是真正特定于正在转换的代码,我就无法在语句的末尾获得括号。有没有一种方法可以像这样使用代码

src = bytes.Replace(src, []byte("Insert"), []byte("Println(" * ")"), -1)
并且能够在代码行的末尾放一个括号

package main

import (
        "fmt"
        "regexp"
)

func main() {
        src := []byte(`
Write(1, 3, "foo", 3*qux(42));
WriteLn("Enter bar: ");
`)
        re := regexp.MustCompile(`Write\((.*)\);`)
        re2 := regexp.MustCompile(`WriteLn\((.*)\);`)
        src = re.ReplaceAll(src, []byte(`Print($1)`))
        src = re2.ReplaceAll(src, []byte(`PrintLn($1)`))
        fmt.Printf("%s", src)
}
(阿尔斯)


输出:

Print(1, 3, "foo", 3*qux(42))
PrintLn("Enter bar: ")

现在有了这个,我可以将它设置为变量src,以便在我更改代码时更新它吗?