package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`# https://regex101.com/r/fP1oQ6/2
(?(DEFINE)#
(?<W>\s*)
(?<V>\d+(?:\.\d+)?(?&W))
(?<S>[-+]?)
(?<O>(?&W)[-+*\/](?&W))
(?<E>(?&S)(?:(?&V)|\((?&W)(?&E)(?&W)\))(?:(?&O)(?&E))?)#
)#
((?&E))`)
var str = `(8 - 1 + 3) * 6 - ((3 + 7) * 2)`
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/