How golang replace string by regex group?

roger picture roger · Apr 24, 2017 · Viewed 7.5k times · Source

I want to use regex group to replace string in golang, just like as follow in python:

re.sub(r"(\d.*?)[a-z]+(\d.*?)", r"\1 \2", "123abc123") # python code

So how do I implement this in golang?

Answer

Ainar-G picture Ainar-G · Apr 24, 2017

Use $1, $2, etc in replacement. For example:

re := regexp.MustCompile(`(foo)`)
s := re.ReplaceAllString("foo", "$1$1")
fmt.Println(s)

Playground: https://play.golang.org/p/ZHoz-X1scf.

Docs: https://golang.org/pkg/regexp/#Regexp.ReplaceAllString.