package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^(?P<key>[ABCD])\.\s+.+
(?=
(?:\n[ABCD]\.\s+.+){0,3}
\n
\nKey:\s+(?!(?P=key))
)`)
var str = `Question: What is the capital city of France?
A. Berlin
B. Paris
C. Rome
D. Madrid
Key: B
Question: Who is credited with inventing the World Wide Web?
A. Steve Jobs
B. Bill Gates
C. Tim Berners-Lee
D. Mark Zuckerberg
Key: C`
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/