golang条件正则表达式

发布时间:2024-07-07 17:05:59

正则表达式(Regular Expression)是一种描述字符模式的工具,广泛应用于文本匹配和替换、数据验证等领域。在 Go 语言中,使用内置的 regexp 包来支持正则表达式的操作。下面我们将深入探讨 Go 语言中条件正则表达式的使用。

匹配邮箱

首先,让我们来看一个常见的使用场景:匹配邮箱地址。正则表达式可以帮助我们判断一个字符串是否符合邮箱的格式要求。在 Go 中,可以使用 regexp 包的 MatchString 函数配合正则表达式进行匹配。

以下示例演示了如何使用正则表达式来匹配邮箱地址:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    email := "example@example.com"
    pattern := `^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$`

    matched, _ := regexp.MatchString(pattern, email)
    if matched {
        fmt.Println("Valid email address")
    } else {
        fmt.Println("Invalid email address")
    }
}

提取手机号码

接下来,我们将学习如何提取一个字符串中的手机号码。通过正则表达式,我们可以快速找到符合手机号码格式的字符序列。

下面是一个示例代码,用于提取字符串中的手机号码:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    text := "Please contact me at 123-456-7890"
    pattern := `(\d{3})-(\d{3})-(\d{4})`

    regex := regexp.MustCompile(pattern)
    phoneNumber := regex.FindString(text)

    fmt.Println("Phone number:", phoneNumber)
}

替换敏感词汇

最后,我们将学习如何使用正则表达式来替换字符串中的敏感词汇。通过正则表达式的替换功能,我们可以快速地将文本中的敏感信息进行屏蔽或替换。

以下是一个示例代码,演示了如何用星号替换文本中的敏感词汇:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    text := "This is a sample text with sensitive information."

    sensitiveWords := []string{"sensitive", "information"}
    for _, word := range sensitiveWords {
        pattern := fmt.Sprintf(`(?i)%s`, word)
        regex := regexp.MustCompile(pattern)
        replacement := "***"

        text = regex.ReplaceAllString(text, replacement)
    }

    fmt.Println("Filtered text:", text)
}

通过以上示例,我们可以看到在 Go 语言中使用正则表达式的强大功能。掌握正则表达式的使用,将会在文本操作、数据验证等方面带来便利,提高开发效率。

相关推荐