解析、编译正则表达式
使用regexp.MustCompile()函数
函数的主要作用是将正则表达式中,奇形怪状的号(如.*[.)转换成 Go 语言能识别的格式,并将其存成结构体格式,方便编译器识别。
参数:正则表达式字串。建议使用反引号。
返回值:编译后的结构体。解析失败时会产生 panic错误。
func MustCompile(str string) *Regexp {
regexp, err := Compile(str)
if err != nil {
panic(`regexp: Compile(` + quote(str) + `): ` + err.Error())
}
return regexp
}
提取需要的信息
使用FindAllStringSubmatch()函数
参数 1:待解析的字符串。
参数 2:匹配的次数。通常传-1,表示匹配所有。 1,匹配第一个
返回值:返回成功匹配的二维数组[][][][][][][][][] []string。
func (re *Regexp) FindAllStringSubmatch(s string, n int) [][]string
上实例
func main() {
var str string = "abc a7c mfc cat 8ca azc cba"
// 解析、编译正则表达式
ret := regexp.MustCompile(`a.c`) //反引号:表示使用原生字符串
// 提取需要的数据
all := ret.FindAllStringSubmatch(str, -1)
fmt.Println(all)
}
运行结果: