Go语言正则表达式用法实例小结【查找、匹配、替换等】
本文实例讲述了Go语言正则表达式用法。分享给大家供大家参考,具体如下:
Go语言的正则表达式使用很简单,示例代码:
packagetest import( "fmt" "regexp" ) funcRegixBase(){ //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //传入[]byte,返回[]byte funcfindTest(){ str:="ab001234hah120210a880218end" reg:=regexp.MustCompile("\\d{6}")//六位连续的数字 fmt.Println("------Find------") //返回str中第一个匹配reg的字符串 data:=reg.Find([]byte(str)) fmt.Println(string(data)) fmt.Println("------FindAll------") //返回str中所有匹配reg的字符串 //第二个参数表示最多返回的个数,传-1表示返回所有结果 dataSlice:=reg.FindAll([]byte(str),-1) for_,v:=rangedataSlice{ fmt.Println(string(v)) } } //传入[]byte,返回首末位置索引 funcfindIndexTest(){ fmt.Println("------FindIndex------") //返回第一个匹配的字符串的首末位置 reg2:=regexp.MustCompile("start\\d*end")//start开始,end结束,中间全是数字 str2:="00start123endhahastart120PSend09start10000end" //index[0]表示开始位置,index[1]表示结束位置 index:=reg2.FindIndex([]byte(str2)) fmt.Println("start:",index[0],",end:",index[1],str2[index[0]:index[1]]) fmt.Println("------FindAllIndex------") //返回所有匹配的字符串首末位置 indexSlice:=reg2.FindAllIndex([]byte(str2),-1) for_,v:=rangeindexSlice{ fmt.Println("start:",v[0],",end:",v[1],str2[v[0]:v[1]]) } } //传入string,返回string(更加方便) funcfindStringTest(){ fmt.Println("------FindString------") str:="ab001234hah120210a880218end" reg:=regexp.MustCompile("\\d{6}")//六位连续的数字 fmt.Println(reg.FindString(str)) fmt.Println(reg.FindAllString(str,-1)) //以下两个方法是类似的 fmt.Println(reg.FindStringIndex(str)) fmt.Println(reg.FindIndex([]byte(str))) } //查找汉字 funcfindChinesString(){ str:="hello中国hello世界和平hi好" reg:=regexp.MustCompile("[\\p{Han}]+") fmt.Println(reg.FindAllString(str,-1)) //[中国世界和平好] } //查找数字或小写字母 funcfindNumOrLowerLetter(){ str:="HAHA00azBAPabc09FGabHY99" reg:=regexp.MustCompile("[\\d|a-z]+") fmt.Println(reg.FindAllString(str,-1)) //[00azabc09ab99] } //查找并替换 funcfindAndReplace(){ str:="WelcomeforBeijing-TianjinCRHtrain." reg:=regexp.MustCompile("") fmt.Println(reg.ReplaceAllString(str,"@"))//将空格替换为@字符 //Welcome@for@Beijing-Tianjin@CRH@train. }
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家Go语言程序设计有所帮助。