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]]

}