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"]

参考: