Golang 替换所有与正则表达式匹配的字符串

正则表达式是一个定义搜索模式的字符序列。Go语言支持正则表达式。
在Go的正则表达式中,如果指定的字符串与指定的正则表达式相匹配,你就可以用另一个字符串替换原来的字符串,方法是 ReplaceAllString() 。在这个方法中, $ 符号的意思是在Expand中的解释,如 1美元 表示第一个子匹配的文本。这个方法是在regexp包下定义的,所以要访问这个方法,你需要在你的程序中导入regexp包。

语法

func (re *Regexp) ReplaceAllString(str, r string) string

例1 :

// Go program to illustrate how to
// replace string with the specified regexp
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Replace string with the specified regexp
    // Using ReplaceAllString() method
    m1 := regexp.MustCompile(`x(p*)y`)
  
    fmt.Println(m1.ReplaceAllString("xy--xpppyxxppxy-", "B"))
    fmt.Println(m1.ReplaceAllString("xy--xpppyxxppxy--", "$1"))
    fmt.Println(m1.ReplaceAllString("xy--xpppyxxppxy-", "$1P"))
    fmt.Println(m1.ReplaceAllString("xy--xpppyxxppxy-", "${1}Q"))
  
}

输出

B--BxxppB-
--pppxxpp--
--xxpp-
Q--pppQxxppQ-

例2 :

// Go program to illustrate how to replace
// string with the specified regexp
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Creating and initializing a string
    // Using shorthand declaration
    s := "Geeks-for-Geeks-for-Geeks-for-Geeks-gfg"
  
    // Replacing all the strings
    // Using ReplaceAllString() method
    m := regexp.MustCompile("^(.*?)Geeks(.*)$")
    Str := "${1}GEEKS$2"
    res := m.ReplaceAllString(s, Str)
    fmt.Println(res)
  
}

输出

GEEKS-for-Geeks-for-Geeks-for-Geeks-gfg