Go言語 正規表現
正規表現はregexpパッケージ。
captureに相当するのはFindStringSubmatchなんですね。
package main
import (
"fmt"
"regexp"
)
func main() {
fmt.Println("---- MatchString ----")
validID := regexp.MustCompile("^[a-zA-Z0-9]+$")
fmt.Println(validID.MatchString("0123"))
fmt.Println(validID.MatchString("a_b"))
fmt.Println("---- ReplaceAllString ----")
fmt.Println(regexp.MustCompile("hello").ReplaceAllString("hello world", "HELLO"))
fmt.Println("---- FindString ----")
fmt.Println(regexp.MustCompile("([a-z]+)@gmail.com").FindString("mail: [email protected]"))
fmt.Println("---- FindStringSubmatch ----")
fmt.Println(regexp.MustCompile("([a-z]+)@(.*?).com").FindStringSubmatch("mail: [email protected]"))
}
正規表現パターンをCompile
するのは、これまたPythonの影響が強いですね。