我正在尝试在 Go 中编写一个函数,它将替换foobar为foobaz,但前提是bar前面是foo。我尝试了以下方法:package mainimport ( "fmt" "regexp")func main() { re := regexp.MustCompile(`(?<=foo)bar`) new := re.ReplaceAll([]byte("foobar"), []byte("baz")) fmt.Println(string(new))}目标是让这个程序 print foobaz,但我却感到恐慌,因为正则表达式无法编译:panic: regexp: Compile(`(?<=foo)bar`): error parsing regexp: invalid or unsupported Perl syntax: `(?<`我怎样才能做到这一点?笔记我尝试过的一件事是将正则表达式替换为非捕获组:re := regexp.MustCompile(`(?:foo)bar`)但是,我发现程序随后打印baz而不是按foobaz预期打印。
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消