regexp
About
正規表現の文法は \C
を除いて https://github.com/google/re2/wiki/Syntax に従っている。
文法の概要については次を実行して見るとよい:
go doc regexp/syntax
関連項目:
参考:
Examples
// 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"))
Reference
type Regexp
https://golang.org/pkg/regexp/#Regexp
コンパイルされた正規表現を表す。
func FindStringSubmatch
https://golang.org/pkg/regexp/#Regexp.FindStringSubmatch
func (re *Regexp) FindStringSubmatch(s string) []string
FindSubmatchのstring版。
Examples:
re := regexp.MustCompile(`a(x*)b(y|z)c`)
fmt.Printf("%q\n", re.FindStringSubmatch("-axxxbyc-"))
fmt.Printf("%q\n", re.FindStringSubmatch("-abzc-"))
実行結果:
["axxxbyc" "xxx" "y"]
["abzc" "" "z"]
func FindSubmatch
https://golang.org/pkg/regexp/#Regexp.FindSubmatch
func (re *Regexp) FindSubmatch(b []byte) [][]byte
グループ化された正規表現を使って、後方参照のようなことができる。
Examples:
re := regexp.MustCompile(`foo(.?)`)
fmt.Printf("%q\n", re.FindSubmatch([]byte(`seafood fool`)))
実行結果:
["food" "d"]
参考: