package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^\[NT_BASIC](?:,\[[^\r\n\]]*])*(?:\r?\n(?!\r?\n\[).*)*\r?\n"E:"`)
var str = `[NT_BASIC]
"SYSTEM" WARNING 1 GB * 0000 2400
"SYSTEM" MINOR 500 MB * 0000 2400
[OTHERS],[DB2]
"D:" WARNING 1 GB * 0000 2400
"D:" MINOR 500 MB * 0000 2400
"E:" WARNING 1 GB 1-5 0700 1700
"E:" MINOR 500 MB 1-5 0700 1700
"F:" WARNING 5 % 1-5 0700 1700
"F:" MINOR 2 % 1-5 0700 1700
"H:" WARNING 1 GB 1-5 0700 1700
"H:" MINOR 500 MB 1-5 0700 1700
[NT_BASIC]
"SYSTEM" WARNING 1 GB * 0000 2400
"SYSTEM" MINOR 500 MB * 0000 2400
"E:" WARNING 1 GB 1-5 0700 1700
[OTHERS],[DB2]
"D:" WARNING 1 GB * 0000 2400
"D:" MINOR 500 MB * 0000 2400
"E:" WARNING 1 GB 1-5 0700 1700
"E:" MINOR 500 MB 1-5 0700 1700
"F:" WARNING 5 % 1-5 0700 1700
"F:" MINOR 2 % 1-5 0700 1700
"H:" WARNING 1 GB 1-5 0700 1700
"H:" MINOR 500 MB 1-5 0700 1700`
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/