Golang 使用正则表达式替换所有匹配的字符串
在Golang中,您可以使用regexp包的帮助来替换所有与正则表达式匹配的字符串出现。 Golang中的regexp包提供了ReplaceAllString()函数,用于将匹配字符串的所有出现替换为新字符串。
示例
下面是一个示例,说明如何在Golang中替换所有与正则表达式匹配的字符串:
package main
import (
"fmt"
"regexp"
)
func main() {
str := "The quick brown fox jumps over the lazy dog"
re := regexp.MustCompile("fox|dog")
newStr := re.ReplaceAllString(str, "cat")
fmt.Println(newStr)
}
在上面的示例中,我们有一个包含句子的字符串 str。我们希望用单词 “cat” 替换所有出现的 “fox” 和 “dog”。为了实现这一点,我们首先使用 regexp.MustCompile() 编译一个正则表达式模式。该正则表达式模式匹配单词 “fox” 和 “dog”。
接下来,我们使用输入字符串和替换字符串作为参数调用 ReplaceAllString() 函数。该函数将匹配模式的所有出现替换为替换字符串,并返回新的字符串。
上面的代码的输出将是 −
输出
The quick brown cat jumps over the lazy cat
你可以使用正则表达式在字符串中替换更复杂的模式。
示例
这里有另一个示例,它将所有出现的数字替换为’#’字符 –
package main
import (
"fmt"
"regexp"
)
func main() {
str := "My phone number is 123-456-7890"
re := regexp.MustCompile("[0-9]")
newStr := re.ReplaceAllString(str, "#")
fmt.Println(newStr)
}
在上面的示例中,我们有一个包含电话号码的字符串 str。我们想要用’#’字符替换电话号码中的所有数字。为了实现这个目标,我们编译了一个正则表达式模式,使用字符类[0-9]匹配任何数字。
接下来,我们使用输入字符串和替换字符串作为参数调用ReplaceAllString()函数。该函数将匹配模式的所有出现替换为替换字符串,并返回新的字符串。
输出
My phone number is ###-###-####
结论
总结而言,在Golang中,替换匹配正则表达式的所有字符串出现是很容易的,可以使用regexp包的ReplaceAllString()函数来实现。