go 正則的使用

定義一個正則表達式

調用regexp 下面的幾個方法並傳入一個正則的字符串形式的參數定義一個正則表達式
例如 :regexp.MustCompile("\d")git

Compile
CompilePOSIX
MustCompile
MustCompilePOSIX

方法概述

regexp包中有16種方法來匹配正則表達式並標識匹配的文本,他們的名稱可使用這個正則來匹配 github

Find(All)?(String)?(Submatch)?(Index)?golang

若是存在 All 該函數將匹配整個表達式的連續非重疊匹配。方法返回的是一個包含非all 值得切片,這個方法使用一個額外的參數整數參數 n, 若是n> = 0,則該函數最多返回n個匹配項/子匹配項;不然,它返回全部匹配項/子匹配項。 正則表達式

若是存在 String 參數會是一個string,不然參數是一個 []byte 返回值也會相應的調整.express

若是存在 Submatch 返回值是一個切片,用於標識表達式的連續子匹配項, 子匹配項是正則表達式中帶括號的子表達式(也稱爲捕獲組)的匹配項,按左括號的順序從左到右編號。子匹配0是整個表達式的匹配項,子匹配1是第一個帶括號的子表達式的匹配項,依此類推。函數

若是存在Index, 則返回輸入字符串匹配項和子匹配項字節索引對,result[2*n:2*n+1]標識第n個子匹配項的索引, n==0 是整個表達式匹配的結果的索引對,若是不存在Index,則經過匹配/子匹配的文本識別匹配。google

還有一些其餘方法與此模式不匹配。翻譯

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // Compile the expression once, usually at init time.
    // Use raw strings to avoid having to quote the backslashes.
    var validID = regexp.MustCompile(`^[a-z]+\[[0-9]+\]$`)

    fmt.Println(validID.MatchString("adam[23]"))
    fmt.Println(validID.MatchString("eve[7]"))
    fmt.Println(validID.MatchString("Job[48]"))
    fmt.Println(validID.MatchString("snakey"))
}

翻譯自 go regexp
regex syntex 正則語法code

相關文章
相關標籤/搜索