調用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")) }