Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)內(nèi)建提供了regexp包
- . 匹配除換行符以外的任意字符
- \w 匹配字母或數(shù)字或下劃線或漢字
- \s 匹配任意的空白符
- \d 匹配數(shù)字
- \b 匹配單詞的開(kāi)始或結(jié)束
- ^ 匹配字符串的開(kāi)始
- $ 匹配字符串的結(jié)束
- 重復(fù)零次或更多次
- 重復(fù)一次或更多次
- ? 重復(fù)零次或一次
- {n} 重復(fù)n次
- {n,} 重復(fù)n次或更多次
- {n,m} 重復(fù)n到m次
- 捕獲 (exp) 匹配exp,并捕獲文本到自動(dòng)命名的組里
- (?exp) 匹配exp,并捕獲文本到名稱(chēng)為name的組里,也可以寫(xiě)成(?'name’exp)
- (?:exp) 匹配exp,不捕獲匹配的文本,也不給此分組分配組號(hào)
定義正則表達(dá)式
var (
//郵箱
reQQEmail = `(\d+)@qq.com`
reEmail = `\w+@\w+\.\w+(\.\w+)?`
//超鏈接
//<a
reLinkBad = `<a[\s\S]*?href="(https?://[\s\S]+?)"`
reLink = `href="(https?://[\s\S]+?)"`
//手機(jī)號(hào)
//13x xxxx xxxx
rePhone = `1[345789]\d\s?\d{4}\s?\d{4}`
//身份證號(hào)
//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))))"`
)