golang中的正则表达式
package main import ( "fmt" "regexp" ) func main() { // 1. 根据字符串匹配 m1, _ := regexp.MatchString("foo.*", "seafood") fmt.Println(m1) // true m2, _ := regexp.MatchString("^foo.*", "seafood") fmt.Println(m2) // false // 2. 根据字符串查找 reg1 := regexp.MustCompile(`\d{11}`) ret1 := reg1.FindString("15313067271886595446515153130672712") // 只查找第一个 ret2 := reg1.FindAllString("15313067271886545986715313067271", -1) // n:-1表示查找所有, 1找一个,2找2个 fmt.Println(ret1) // 15313067271 fmt.Println(ret2) // [15313067271 88654598671] // 3. 获取分组信息 reg2 := regexp.MustCompile(`(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)`) ret3 := reg2.FindStringSubmatch("dsf130429191912015219k13042919591219521Xkk") ret4 := reg2.FindAllStringSubmatch("dsf130429191912015219k13042919591219521Xkk", -1) fmt.Println(ret3) // [130429191912015219 130429 1919 12 01 521 9] fmt.Println(ret4) // [[130429191912015219 130429 1919 12 01 521 9] [13042919591219521X 130429 1959 12 19 521 X]] }