package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^(?:export\s+|)(?<key>[[:alnum:]_]+)=((?<quote>["'])?(?<val>.*?[^\\])\k<quote>?|)$`)
var str = `DOT_ENV=dotenv
#DOTENV=dotenv
DOT_ENV= asdf asf
DOTENV='dot env'
DOTENV="dot env"
DOT_ENV='dotenv'
DOT_ENV="DotEnv"
DOTENV="Dot\nEnv"
DOTENV="{"Dot":"Env"}"
export DOTENV="dotenv"
DOTENV ="dot env"
DOTENV= "dot env"
DOTENV = "dot env"`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
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/