正则表达式是定义搜索模式的字符序列。 Go 语言支持正则表达式。正则表达式用于从大文本(如日志、其他程序生成的输出等)中解析、过滤、验证和提取有意义的信息。
在 Go regexp 中,如果指定的字符串与指定的正则表达式匹配,则可以借助ReplaceAllString()方法将原始字符串替换为另一个字符串。在此方法中, $符号表示解释为Expand like $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