使用 bytes.replace 时,有没有办法使用通配符



我正在用 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: ")

最新更新