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

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()函数来实现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程