📅  最后修改于: 2023-12-03 15:01:00.438000             🧑  作者: Mango
Go 语言内置了对正则表达式的支持,可以通过 regexp
包实现字符串匹配。本文将介绍 Go 中的字符串匹配正则表达式的基本用法。
正则表达式是用于匹配字符串模式的工具,是对字符序列进行模式查找和替换的一种通用的计算机文字处理工具。
Go 语言中的正则表达式采用的是 PCRE(Perl Compatible Regular Expression)语法。
Go 语言内置的 regexp
包提供了正则表达式的支持,可以通过其提供的 Regexp
类型来完成对字符串的匹配。
可以使用 regexp.Compile
方法来创建正则表达式,该方法将返回一个 Regexp
类型的对象和一个错误值。
package main
import (
"fmt"
"regexp"
)
func main() {
reg, err := regexp.Compile("a.c")
if err != nil {
fmt.Println("regex error:", err)
return
}
fmt.Println(reg.MatchString("abc")) // true
fmt.Println(reg.MatchString("adc")) // false
}
在上述示例中,我们通过 regexp.Compile
方法创建了一个匹配 a.c
的正则表达式,并通过 Regexp.MatchString
方法对字符串 "abc"
和 "adc"
进行了匹配。
可以使用 Regexp.MatchString
方法来对字符串进行匹配,该方法将返回匹配结果和一个错误值。
package main
import (
"fmt"
"regexp"
)
func main() {
reg, err := regexp.Compile("a.c")
if err != nil {
fmt.Println("regex error:", err)
return
}
fmt.Println(reg.MatchString("abc")) // true
fmt.Println(reg.MatchString("adc")) // false
}
在上述示例中,我们通过 Regexp.MatchString
方法对字符串 "abc"
和 "adc"
进行了匹配,返回了匹配结果。
可以使用 Regexp.FindString
方法来查找指定的字符串,该方法返回第一个匹配的字符串。
package main
import (
"fmt"
"regexp"
)
func main() {
reg, err := regexp.Compile("a.c")
if err != nil {
fmt.Println("regex error:", err)
return
}
str := "abcd"
matchStr := reg.FindString(str)
fmt.Println(matchStr) // abc
}
在上述示例中,我们使用 Regexp.FindString
方法查找字符串 "abcd"
中第一个匹配正则表达式 "a.c"
的字符串,返回了 "abc"
。
可以使用 Regexp.FindAllString
方法来查找指定的字符串,并返回所有匹配的字符串。
package main
import (
"fmt"
"regexp"
)
func main() {
reg, err := regexp.Compile("a.c")
if err != nil {
fmt.Println("regex error:", err)
return
}
str := "abcd"
matchStrList := reg.FindAllString(str, -1)
fmt.Println(matchStrList) // [abc]
}
在上述示例中,我们使用 Regexp.FindAllString
方法查找字符串 "abcd"
中所有匹配正则表达式 "a.c"
的字符串,返回了一个只包含一个元素的字符串切片 ["abc"]
。
本文介绍了 Go 中的字符串匹配正则表达式的基本用法,包括正则表达式语法、regexp 包、创建正则表达式、匹配字符串、查找字符串和查找所有字符串。希望本文对您有所帮助。