regexp
前置知识
在开始介绍如何从Golang中的字符串中提取正则表达式之前,有一些前置知识需要了解:
- 正则表达式的语法
.*+[]|
regexp
regexpMatchFindStringRegexpRegexpMatchString
步骤
- 创建正则表达式
regexp.Compile*regexp.Regexp"foo"
import "regexp"
r, err := regexp.Compile("^foo")
- 提取正则表达式
Regexp.FindString"foo bar"
s := "foo bar"
matchString := r.FindString(s)
matchString"foo"
- 提取正则表达式的子表达式
Regexp.FindStringSubmatch
expr := "(foo)=(\\d+)"
r, err := regexp.Compile(expr)
s := "foo=123"
matchStrings := r.FindStringSubmatch(s)
package main
import (
"fmt"
"regexp"
)
func main() {
expr := "(foo)=(\\d+)"
r, err := regexp.Compile(expr)
if err != nil {
fmt.Printf("error compiling regexp: %v\n", err)
return
}
s := "foo=123"
matchStrings := r.FindStringSubmatch(s)
if len(matchStrings) < 3 {
fmt.Println("no match found")
return
}
fmt.Printf("Match: %s\n", matchStrings[0])
fmt.Printf("First capturing group: %s\n", matchStrings[1])
fmt.Printf("Second capturing group: %s\n", matchStrings[2])
}