微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

go 正则表达式

go正则表达式大全

ackage test

import ( 
“fmt” 
“regexp” 
)

func RegixBase() { 
//findtest() 
//findindextest() 
//findStringtest() 
//findChinesString() 
//findNumOrLowerLetter() 
findAndReplace() 
}

//传入[]byte,返回[]byte 
func findtest()
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 := range dataSlice {  
    fmt.Println(string(v))  
}  

}

//传入[]byte,返回首末位置索引 
func findindextest()
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),v := range indexSlice {  
    fmt.Println("start:",v[0],",end:",v[1],str2[v[0]:v[1]])  
}  

}

//传入string,返回string(更加方便) 
func findStringtest()
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)))  

}

//查找汉字 
func findChinesString() { 
str := “hello中国hello世界和平hi好” 
reg := regexp.MustCompile(“[\p{Han}]+”) 
fmt.Println(reg.FindAllString(str,-1))

//[中国 世界和平 好]  

}

//查找数字或小写字母 
func findNumOrLowerLetter() { 
str := “HAHA00azBAPabc09FGabHY99” 
reg := regexp.MustCompile(“[\d|a-z]+”) 
fmt.Println(reg.FindAllString(str,245);">//[00az abc09 ab 99]  

}

//查找并替换 
func findAndReplace() { 
str := “Welcome for Beijing-Tianjin CRH train.” 
reg := regexp.MustCompile(” “) 
fmt.Println(reg.ReplaceAllString(str,“@”)) //将空格替换为@字符

//Welcome@for@Beijing-Tianjin@CRH@train.  

}

本文来自:CSDN博客

感谢作者:guoer9973

查看原文:go 正则表达式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐