中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang regexp記錄

發布時間:2020-08-06 17:50:28 來源:網絡 閱讀:1440 作者:暮色伊人 欄目:編程語言
  1. FindAllSubmatch與FindSubmatch區別
  // 匹配一個非元音字母,一個元音字母,一個非元音字母
    someRegex, _ := regexp.Compile(`[^aouiye]([aouiye])([^aouiye])?`)
    m1 := someRegex.FindAllStringSubmatch("somestri", -1)
    m2 := someRegex.FindStringSubmatch("somestri")

    fmt.Println(m1)
    fmt.Println(m2)

    //result:
    [[som o m] [ri i ]]
    [som o m]

    re2, _ := regexp.Compile("am(.*)lang(.*)")
    //查找Submatch,返回數組,第一個元素是匹配的全部元素,第二個元素是第一個()里面的,第三個是第二個()里面的
    //下面的輸出第一個元素是"am learning Go language"
    //第二個元素是" learning Go ",注意包含空格的輸出
    //第三個元素是"uage"
    submatch := re2.FindSubmatch([]byte(a))
    fmt.Println("FindSubmatch", submatch)
    for _, v := range submatch {
        fmt.Println(string(v))
    }

    //定義和上面的FindIndex一樣
    submatchindex := re2.FindSubmatchIndex([]byte(a))
    fmt.Println("submatchindex:",submatchindex)

    //FindAllSubmatchIndex,查找所有字匹配的index
    submatchallindex := re2.FindAllSubmatchIndex([]byte(a), -1)
    fmt.Println("submatchallindex:",submatchallindex)

    //FindAllSubmatch,查找所有符合條件的子匹配
    submatchall := re2.FindAllSubmatch([]byte(a), -1)
    fmt.Println("submatchall:",submatchall)

    //result

  submatchindex: [2 25 4 17 21 25]
  submatchallindex: [[2 25 4 17 21 25]]
  submatchall: [[[97 109 32 108 101 97 114 110 105 110 103 32 71 111 32 108 97 110 103 117 97 103 101] [32 108 101 97 114 110 105 110 103 32 71 111 32] [117 97 103 101]]]
  1. 貪婪與非貪婪
  s := "圖片(img=32,34)http://www.xiong.com/jpg(/img)圖片(img=32,34)http://www.xiong.com/jpg(/img)"

    //非貪婪模式
    parse,_ := regexp.Compile("\\(.*?\\)")
    fmt.Println(parse.MatchString(s))
    fmt.Println(parse.FindString(s))
    fmt.Println(parse.ReplaceAllString(s,"+"))

    //result
    true
    (img=32,34) //最左最短匹配
    圖片+http://www.xiong.com/jpg+圖片+http://www.xiong.com/jpg+

    //貪婪模式
    parse,_ := regexp.Compile("\\(.*\\)")
    fmt.Println(parse.MatchString(s))
    fmt.Println(parse.FindString(s))
    fmt.Println(parse.ReplaceAllString(s,"+"))

    //result
    true
  (img=32,34)http://www.xiong.com/jpg(/img)圖片(img=32,34)http://www.xiong.com/jpg(/img)
  圖片+
  1. find vs findAll
  a := "I am learning Go language"
    re, _ := regexp.Compile("[a-z]{2,4}")
    //查找符合正則的第一個
    one := re.Find([]byte(a))
    fmt.Println("Find:", string(one))
    //查找符合正則的所有slice,n小于0表示返回全部符合的字符串,不然就是返回指定的長度
    all := re.FindAll([]byte(a), -1)
    fmt.Print("FindAll:")
    for i:= 0; i < len(all); i++{
        fmt.Print(string(all[i])+",")
    }

    //查找符合條件的index位置,開始位置和結束位置
    index := re.FindIndex([]byte(a))
    fmt.Println("FindIndex", index)

    //查找符合條件的所有的index位置,n同上
    allindex := re.FindAllIndex([]byte(a), -1)
    fmt.Println("FindAllIndex", allindex)

    //result
  Find: am
  FindAll:am,lear,ning,lang,uage

  FindIndex [2 4]
  FindAllIndex [[2 4] [5 9] [9 13] [17 21] [21 25]]
  1. capture group

    var myExp = regexp.MustCompile(`(?P<first>\d+)\.(\d+).(?P<second>\d+)`)
    fmt.Printf("%+v\n", myExp.FindAllStringSubmatch("1234.5678.9",-1))
    fmt.Printf("%+v", myExp.FindStringSubmatch("1234.5678.9"))
    
    //result
    
    [[1234.5678.9 1234 5678 9]]
    [1234.5678.9 1234 5678 9]
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐梓县| 东阿县| 山阳县| 南和县| 海南省| 宁海县| 中西区| 峨山| 济宁市| 延安市| 长乐市| 沧州市| 南充市| 天津市| 黄大仙区| 灌阳县| 广河县| 六安市| 柳州市| 文安县| 德惠市| 井冈山市| 喀什市| 屏东市| 牡丹江市| 宜章县| 明溪县| 仙桃市| 遂昌县| 前郭尔| 万源市| 璧山县| 泰兴市| 呼和浩特市| 建水县| 长沙县| 和政县| 五河县| 定结县| 安吉县| 水城县|