package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?'start'\{\n)|((?'line' (?U)(".*")\: (".*")(?-U),?\n))|(?'end'\})`)
var str = `{
"word1": "category1",
"word2": "category2",
"word3": "category3",
"word4": "category4",
"word5": "category5",
"word6": "category6",
"word7": "category7"
}`
var substitution = "${start:+CASE\n}${line:+ WHEN $4 THEN $5\n}${end:+ ELSE "other"\nEND}"
fmt.Println(re.ReplaceAllString(str, substitution))
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/