go中正则表达式

字符类:

.    匹配任意一个字符          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

 

上一篇:相机模型和标定


下一篇:初识Java