我正在嘗試在 Go 中編寫一個(gè)函數(shù),它將替換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))}目標(biāo)是讓這個(gè)程序 print foobaz,但我卻感到恐慌,因?yàn)檎齽t表達(dá)式無法編譯:panic: regexp: Compile(`(?<=foo)bar`): error parsing regexp: invalid or unsupported Perl syntax: `(?<`我怎樣才能做到這一點(diǎn)?筆記我嘗試過的一件事是將正則表達(dá)式替換為非捕獲組:re := regexp.MustCompile(`(?:foo)bar`)但是,我發(fā)現(xiàn)程序隨后打印baz而不是按foobaz預(yù)期打印。
- 1 回答
- 0 關(guān)注
- 180 瀏覽
添加回答
舉報(bào)
0/150
提交
取消