golang之正則校正

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Go語言中使用正則校正需要用到   regexp  

先介紹幾種常用的方法:

1、 使用MatchString函數

regexp.MatchString(pattern string, s string)  pattern為Regex,s為需要校正的字元傳例:match,_:=regexp.MatchString("p([a-z]+)ch","peddach")  返回的第一個參數是bool類型即匹配結果,第二個參數是error類型        fmt.Println(match)  //結果為true2、使用 Compile函數或MustCompile函數它們的區別是Compile返回兩個參數*Regexp,error類型,而MustCompile只返回*Regexp類型func Compile(expr string) (*Regexp, error) {}func MustCompile(str string) *Regexp {}它們的作用是將Regex進行編譯,返回最佳化的 Regexp 結構體,該結構體有需多方法。例    r,_:=regexp.Compile("p([a-z]+)ch")           b:=r.MatchString("peach")   fmt.Println(b)  //結果為true或    r1:=regexp.MustCompile("p([a-z]+)ch")  b1:r1.MatchString("peach")  fmt.Println(b)   //結果為true3、Regexp結構體中一些常用的方法 r,_:=regexp.Compile("p([a-z]+)ch")       fmt.Println(r.MatchString("peach"))  //j結果:true       //尋找匹配的字串         fmt.Println(r.FindString("peach punch"))  //列印結果:peach       //尋找匹配字串開始和結束位置的索引,而不是匹配內容[0 5]       fmt.Println(r.FindStringIndex("peach punch"))  //列印結果: [0 5]       //返回完全符合和局部匹配的字串,例如,這裡會返回  p([a-z]+)ch 和 `([a-z]+) 的資訊          fmt.Println(r.FindStringSubmatch("peach punch"))   //列印結果:[peach ea]    //返回完全符合和局部匹配的索引位置      fmt.Println(r.FindStringSubmatchIndex("peach punch"))   //列印結果: [0 5 1 3]   //返回所有的匹配項,而不僅僅是最初相符項。正整數用來限制匹配次數      fmt.Println(r.FindAllString("peach punch pinch",-1))  //列印結果:[peach punch pinch]       fmt.Println(r.FindAllString("peach punch pinch",2)) //匹配兩次   列印結果:[peach punch]    //返回所有的完全符合和局部匹配的索引位置      fmt.Println(r.FindAllStringSubmatchIndex("peach punch pinch",-1))     //列印結果: [[0 5 1 3] [6 11 7 9] [12 17 13 15]]   //上面的例子中,我們使用了字串作為參數,並使用了如 MatchString 這樣的方法。我們也可以提供 []byte參數並將 String 從函數命中去掉。     fmt.Println(r.Match([]byte("peach")))    //列印結果:true          r1:=regexp.MustCompile("p([a-z]+)ch")          //將匹配的結果,替換成新輸入的結果       fmt.Println(r1.ReplaceAllString("a peach","<fruit>"))     //列印結果: a <fruit>               //Func 變數允許傳遞匹配內容到一個給定的函數中,        in:=[]byte("a peach")       out:=r1.ReplaceAllFunc(in,bytes.ToUpper)       fmt.Printf(string(out))    //列印結果:   a PEACH          


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.