Go语言标准库内建提供了regexp包
- . 匹配除换行符以外的任意字符
- \w 匹配字母或数字或下划线或汉字
- \s 匹配任意的空白符
- \d 匹配数字
- \b 匹配单词的开始或结束
- ^ 匹配字符串的开始
- $ 匹配字符串的结束
- 重复零次或更多次
- 重复一次或更多次
- ? 重复零次或一次
- {n} 重复n次
- {n,} 重复n次或更多次
- {n,m} 重复n到m次
- 捕获 (exp) 匹配exp,并捕获文本到自动命名的组里
- (?exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name’exp)
- (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
定义正则表达式
var (
//邮箱
reQQEmail = `(\d+)@qq.com`
reEmail = `\w+@\w+\.\w+(\.\w+)?`
//超链接
//<a href="http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=%C1%F4%CF%C2%D3%CA%CF%E4%20%B5%BA%B9%FA"
reLinkBad = `<a[\s\S]*?href="(https?://[\s\S]+?)"`
reLink = `href="(https?://[\s\S]+?)"`
//手机号
//13x xxxx xxxx
rePhone = `1[345789]\d\s?\d{4}\s?\d{4}`
//身份证号
//123456 1990 0817 123X
reIdcard = `[123456]\d{5}((19\d{2})|(20[01]\d))((0[1-9])|(1[012]))((0[1-9])|([12]\d)|(3[01]))\d{3}[\dX]`
//图片链接
//"http://img2.imgtn.bdimg.com/it/u=2403021088,4222830812&fm=26&gp=0.jpg"
reImg = `"(https?://[^"]+?(\.((jpg)|(jpeg)|(png)|(gif)|(bmp)|(svg)|(swf)|(ico))))"`
)