package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?P<issuetime>\d+/\w+Z)(?:\s+(?P<layer>\w+/\w+|NOT\s+AVBL)(?:\s+(?P<coordinates>(?:\w\d{4}\s\w\d{5}\s-\s)+\w\d{4}\s\w\d{5}\s))*)?`)
var str = `FCST VA CLD +6 HR: 16/1200Z SFC/FL200 N4517 W04623 - N6356 W01924 -
N7750 E07729 - N3856 E06031 - N4517 W04623 FL200/350 N4839 W04904 -
N7025 E01017 - N7505 E07954 - N6139 E06549 - N4839 W04904
FCST VA CLD +12 HR: 16/1800Z SFC/FL200 N4010 E03817 - N4900 W04529 -
N7112 W00641 - N7617 E09941 - N4010 E03817 FL200/350 N4919 W05700 -
N7300 E03329 - N7732 E09626 - N5936 E09143 - N4919 W05700
FCST VA CLD +18 HR: 17/0000Z SFC/FL200 N4901 W05420 - N7235 E00056 -
N7558 E09708 - N3934 E05131 - N4901 W05420 FL200/350 N4933 W03842 -
N5436 W04127 - N7433 E03732 - N7935 E11430 - N6503 E10238 - N4933
W03842
FCST VA CLD +6 HR: 16/1200Z SFC/FL200 N4517 W04623 - N6356 W01924
FCST VA CLD +12 HR: 16/1800Z NOT AVBL
FCST VA CLD +18 HR: 17/0000Z NOT AVBL RET
`
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/