k01ken’s b10g

He110 W0r1d!

Go言語で正規表現を扱う

開発環境は、Windows 10 Pro(64bit) + go version go1.15.3 windows/amd64

使っている正規表現のパターンはここに書いてます。Google製の正規表現エンジンであるRE2を使用しています。

マッチするかどうかをtrue/falseで返す

package main

import (
  "fmt"
  "regexp"
)

func main(){
  r := regexp.MustCompile(`^[a-z]+-[a-z]+$`)
  // true
  fmt.Println(r.MatchString("hello-world"))
  // false
  fmt.Println(r.MatchString("helloworld"))
}

グループ化して抽出させる

package main

import (
  "fmt"
  "regexp"
)

func main(){
  str := "hello-world"
  r := regexp.MustCompile(`^([a-z]+)-([a-z]+)$`)
  str = r.ReplaceAllString(str, "($1),($2)")
  fmt.Println(str) // (hello),(world)
}

■参考リンク
高速かつ省メモリなGoogleの正規表現ライブラリ re2 についてのメモ
逆引きGolang (正規表現)