Author Archives: yoheimiyamoto

正規表現 or条件

// どちらのstrにも合致する
str := "111,111,111,111"
// str := "a1234567891,111,111,111"

if ok, _ := regexp.MatchString("(a\\d{10}|\\d+),\\d+,\\d+,\\d+", str); ok {
    log.Print("ok")
}

独自のstring

// MyString ...
type MyString string

func newMyString(str string) (*MyString, error) {
    if ok, _ := regexp.MatchString("\\d{2}:\\d{2}", str); ok {
        s := MyString(str)
        return &s, nil
    }
    return nil, fmt.Errorf("error")
}

func main() {
    str := "11:11"
    s, err := newMyString(str)
    if err != nil {
        log.Print(err)
    }
    log.Print(*s)
}

find 正規表現

assined := regexp.MustCompile("a(\\d{10})")
output1 := assined.Find([]byte(`a1234567891`))
output2 := assined.Find([]byte(`1234567891`))
log.Print(output1) // a1234567891
log.Print(output2) // ブランク

正規表現

bs := []byte("12:00")
assined := regexp.MustCompile("(.*):(.*)")
group := assined.FindSubmatch(bs)
log.Print(string(group[0])) // 12:00
log.Print(string(group[1])) // 12 
log.Print(string(group[2])) // 00

json parse 辞書型 or struct

type User1 map[string]string
type User2 struct {
    Name string
}

func main() {
    b := []byte(`{"name":"yohei","age":"100","type":"one"}`)
    var u1 User1
    var u2 User2
    json.Unmarshal(b, &u1)
    json.Unmarshal(b, &u2)
    fmt.Print(u1["name"])
    fmt.Print(u2.Name)
}