printing - 使用 bytes.replace 时有没有办法使用通配符?

标签 printing replace byte go wildcard

我正在使用 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)
}

(或者 here )


输出:

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

关于printing - 使用 bytes.replace 时有没有办法使用通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795662/

相关文章:

javascript - 将 div 项目放在一起进行打印

swift Mac 操作系统 : blank page printed when I try to print webView (WKWebView)

printing - 如何将 PDF 输出发送到浏览器打印选项 (CTRL+P)

JavaScript 从字符串中删除句号、逗号和空格

java - 在 JSF 中将 inputText 转换为 byte[]

php - 如何只打印属于当前帖子的类别?此代码段显示网站中的所有类别

Javascript 隐藏元素并放置其他元素

c++ - C/C++ 从标准输入的 hexinput 读取一个字节

c# - 将字节写入文件

javascript - 如何在 javascript 中突出显示找到的文本