佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Go語(yǔ)言正則表達(dá)式示例

Go語(yǔ)言正則表達(dá)式示例

熱門標(biāo)簽:Linux服務(wù)器 服務(wù)外包 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求 AI電銷 鐵路電話系統(tǒng) 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化

本文實(shí)例講述了Go語(yǔ)言正則表達(dá)式。分享給大家供大家參考,具體如下:

復(fù)制代碼 代碼如下:
package main
import "bytes"
import "fmt"
import "regexp"
func main() {
//這個(gè)測(cè)試一個(gè)字符串是否符合一個(gè)表達(dá)式。
    match, _ := regexp.MatchString("p([a-z]+)ch", "peach")
    fmt.Println(match)
//上面我們是直接使用字符串,但是對(duì)于一些其他的正則任務(wù),你需要使用 Compile 一個(gè)優(yōu)化的 Regexp 結(jié)構(gòu)體。
    r, _ := regexp.Compile("p([a-z]+)ch")
//這個(gè)結(jié)構(gòu)體有很多方法。這里是類似我們前面看到的一個(gè)匹配測(cè)試。
    fmt.Println(r.MatchString("peach"))
//這是查找匹配字符串的。
    fmt.Println(r.FindString("peach punch"))
//這個(gè)也是查找第一次匹配的字符串的,但是返回的匹配開(kāi)始和結(jié)束位置索引,而不是匹配的內(nèi)容。
    fmt.Println(r.FindStringIndex("peach punch"))
//Submatch 返回完全匹配和局部匹配的字符串。例如,這里會(huì)返回 p([a-z]+)ch 和 `([a-z]+) 的信息。
    fmt.Println(r.FindStringSubmatch("peach punch"))
//類似的,這個(gè)會(huì)返回完全匹配和局部匹配的索引位置。
    fmt.Println(r.FindStringSubmatchIndex("peach punch"))
//帶 All 的這個(gè)函數(shù)返回所有的匹配項(xiàng),而不僅僅是首次匹配項(xiàng)。例如查找匹配表達(dá)式的所有項(xiàng)。
    fmt.Println(r.FindAllString("peach punch pinch", -1))
//All 同樣可以對(duì)應(yīng)到上面的所有函數(shù)。
    fmt.Println(r.FindAllStringSubmatchIndex(
        "peach punch pinch", -1))
//這個(gè)函數(shù)提供一個(gè)正整數(shù)來(lái)限制匹配次數(shù)。
    fmt.Println(r.FindAllString("peach punch pinch", 2))
//上面的例子中,我們使用了字符串作為參數(shù),并使用了如 MatchString 這樣的方法。我們也可以提供 []byte參數(shù)并將 String 從函數(shù)命中去掉。
    fmt.Println(r.Match([]byte("peach")))
//創(chuàng)建正則表示式常量時(shí),可以使用 Compile 的變體MustCompile 。因?yàn)?Compile 返回兩個(gè)值,不能用語(yǔ)常量。
    r = regexp.MustCompile("p([a-z]+)ch")
    fmt.Println(r)
//regexp 包也可以用來(lái)替換部分字符串為其他值。
    fmt.Println(r.ReplaceAllString("a peach", "fruit>"))
//Func 變量允許傳遞匹配內(nèi)容到一個(gè)給定的函數(shù)中,
    in := []byte("a peach")
    out := r.ReplaceAllFunc(in, bytes.ToUpper)
    fmt.Println(string(out))
}

返回結(jié)果:

true
true
peach
[0 5]
[peach ea]
[0 5 1 3]
[peach punch pinch]
[[0 5 1 3] [6 11 7 9] [12 17 13 15]]
[peach punch]
true
p([a-z]+)ch
a fruit>
a PEACH

PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • 在Django中URL正則表達(dá)式匹配的方法
  • Go語(yǔ)言正則表達(dá)式用法實(shí)例小結(jié)【查找、匹配、替換等】
  • MongoDB正則表達(dá)式及應(yīng)用
  • golang使用正則表達(dá)式解析網(wǎng)頁(yè)
  • Go語(yǔ)言基礎(chǔ)知識(shí)總結(jié)(語(yǔ)法、變量、數(shù)值類型、表達(dá)式、控制結(jié)構(gòu)等)
  • GO語(yǔ)言中的方法值和方法表達(dá)式的使用方法詳解

標(biāo)簽:仙桃 蘭州 衡水 湘潭 銅川 黃山 崇左 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語(yǔ)言正則表達(dá)式示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    同江市| 新泰市| 常山县| 莱州市| 武宣县| 乌苏市| 武功县| 沈丘县| 神池县| 庆阳市| 镇康县| 邹城市| 义乌市| 石渠县| 特克斯县| 芦溪县| 思南县| 泽库县| 北辰区| 二连浩特市| 古交市| 临邑县| 烟台市| 北票市| 龙江县| 兰坪| 永寿县| 万州区| 凤庆县| 攀枝花市| 天全县| 四川省| 乐业县| 连城县| 甘肃省| 泗洪县| 蓬溪县| 通道| 富蕴县| 龙胜| 灵武市|