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