package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)<field>[\s\S]+?(?=<\/field>)`)
var str = `<field>
<item value="1" description="Mostly A's" />
<item value="2" description="Mostly B's" />
<item value="3" description="Mostly C's" />
<item value="4" description="Mostly D's" />
<item value="5" description="Mostly failures" />
<item value="6" description="Mostly incompletes" />
<item value="7" description="Not applicable" />
</field>
<field>
<item value="1" description="Mostly A's" />
<item value="2" description="Mostly B's" />
<item value="3" description="Mostly C's" />
<item value="4" description="Mostly D's" />
<item value="5" description="Mostly failures" />
<item value="6" description="Mostly incompletes" />
<item value="7" description="Not applicable" />
</field>
`
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/