如何使用正则表达式组在 Golang 中替换字符串?

huangapple go评论94阅读模式
英文:

How golang replace string by regex group?

问题

我想在golang中使用正则表达式组来替换字符串,就像在python中一样:

package main

import (
	"fmt"
	"regexp"
)

func main() {
	re := regexp.MustCompile(`(\d.*?)[a-z]+(\d.*?)`)
	str := re.ReplaceAllString("123abc123", "$1 $2")
	fmt.Println(str)
}

golang中,你可以使用regexp包来进行正则表达式的操作。首先,你需要使用regexp.MustCompile函数来编译你的正则表达式。然后,你可以使用ReplaceAllString方法来替换匹配到的字符串。在替换字符串中,你可以使用$1$2来引用第一个和第二个捕获组的内容。以上是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。

英文:

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" ", "123abc123") # python code

So how do I implement this in golang?

答案1

得分: 22

使用$1$2等进行替换。例如:

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

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

文档:https://golang.org/pkg/regexp/#Regexp.ReplaceAllString。

英文:

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.

huangapple
  • 本文由 发表于 2017年4月24日 18:48:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/43586091.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定