字符类:
. 匹配任意一个字符 eg:abc.可以匹配像abcd abc9 abcZ等
[] 匹配括号中任意一个字符 eg:[abc]d可以匹配ad,bd,cd
- 常常与[]配合使用表示范围 eg:[1-5]d匹配1d,2d,3d,4d,5d等
eg:[a-zA-Z]1匹配所有大小写与1组合
^ 位于括号内开头位置,除括号内开头位置 eg:[^ab]m 匹配除am bm之外与m组合
数量限定符:
? 紧跟他前面的单元匹配0-1次 eg:[0-9]?\.[0-9] 。[0-9]出现0-1次 \.表示转移字符表示. 如果单独一个.就是匹配任意一个字符了 可以匹配 .4 1.4 0.4 等
+ 紧跟他前面的单元匹配1-N次
* 紧跟他前面的单元匹配0-N次
{N} 紧跟他前面的单元精准匹配N次
{N,} 紧跟他前面的单元至少匹配N次
{N,} 紧跟他前面的单元至多匹配N次
{M,N} 紧跟他前面的单元至少匹配M次 至多匹配N次
其他特殊字符
\ 转义字符
() 将正则表达式组成一个单元
| 连接两个子表达式 表示或的关系
1.解析,编译正则表达式,使用regexp.MustCompile()函数
func MustCompile (str string )*Regexp
作用:将正则表达式转换成go能识别的格式,并将其存成结构体的形式,方便编译器识别
参数:正则表达式字串,建议使用反引号
返回值:编译后的结构体 解析失败时会产生panic错误
2.根据解析好的规则(结构体形式),从指定字串中提取信息,使用FindALLStringSubmatch函数
func (re *Regexp)FindAllStringSubmatch(s string ,n int ) [][]string
参数1:待解析的字符串
参数2:匹配的次数。通常传-1 表示匹配所有
返回值:一个二维切片 [][]string