您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Go語(yǔ)言中正則表達(dá)式怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Go語(yǔ)言中正則表達(dá)式怎么用”這篇文章吧。
Go語(yǔ)言的正則表達(dá)式使用很簡(jiǎn)單,示例代碼:
package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //傳入[]byte,返回[]byte func findTest() { str := "ab001234hah220210a880218end" reg := regexp.MustCompile("\\d{6}") //六位連續(xù)的數(shù)字 fmt.Println("------Find------") //返回str中第一個(gè)匹配reg的字符串 data := reg.Find([]byte(str)) fmt.Println(string(data)) fmt.Println("------FindAll------") //返回str中所有匹配reg的字符串 //第二個(gè)參數(shù)表示最多返回的個(gè)數(shù),傳-1表示返回所有結(jié)果 dataSlice := reg.FindAll([]byte(str), -1) for _, v := range dataSlice { fmt.Println(string(v)) } } //傳入[]byte,返回首末位置索引 func findIndexTest() { fmt.Println("------FindIndex------") //返回第一個(gè)匹配的字符串的首末位置 reg2 := regexp.MustCompile("start\\d*end") //start開(kāi)始,end結(jié)束,中間全是數(shù)字 str2 := "00start123endhahastart120PSend09start10000end" //index[0]表示開(kāi)始位置,index[1]表示結(jié)束位置 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 := range indexSlice { fmt.Println("start:", v[0], ",end:", v[1], str2[v[0]:v[1]]) } } //傳入string,返回string(更加方便) func findStringTest() { fmt.Println("------FindString------") str := "ab001234hah220210a880218end" reg := regexp.MustCompile("\\d{6}") //六位連續(xù)的數(shù)字 fmt.Println(reg.FindString(str)) fmt.Println(reg.FindAllString(str, -1)) //以下兩個(gè)方法是類(lèi)似的 fmt.Println(reg.FindStringIndex(str)) fmt.Println(reg.FindIndex([]byte(str))) } //查找漢字 func findChinesString() { str := "hello中國(guó)hello世界和平hi好" reg := regexp.MustCompile("[\\p{Han}]+") fmt.Println(reg.FindAllString(str, -1)) //[中國(guó) 世界和平 好] } //查找數(shù)字或小寫(xiě)字母 func findNumOrLowerLetter() { str := "HAHA00azBAPabc09FGabHY99" reg := regexp.MustCompile("[\\d|a-z]+") fmt.Println(reg.FindAllString(str, -1)) //[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. }
以上是“Go語(yǔ)言中正則表達(dá)式怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。