package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^\s*\d+\s*:\s*(?:o?|(oo+?)\1+)$`)
var str = ` 0 :
1 : o
2 : oo
3 : ooo
4 : oooo
5 : ooooo
6 : oooooo
7 : ooooooo
8 : oooooooo
9 : ooooooooo
10 : oooooooooo
11 : ooooooooooo
12 : oooooooooooo
13 : ooooooooooooo
14 : oooooooooooooo
15 : ooooooooooooooo
16 : oooooooooooooooo
17 : ooooooooooooooooo
18 : oooooooooooooooooo
19 : ooooooooooooooooooo
20 : oooooooooooooooooooo
21 : ooooooooooooooooooooo
22 : oooooooooooooooooooooo
23 : ooooooooooooooooooooooo
24 : oooooooooooooooooooooooo
25 : ooooooooooooooooooooooooo
26 : oooooooooooooooooooooooooo
27 : ooooooooooooooooooooooooooo
28 : oooooooooooooooooooooooooooo
29 : ooooooooooooooooooooooooooooo
30 : oooooooooooooooooooooooooooooo
31 : ooooooooooooooooooooooooooooooo
32 : oooooooooooooooooooooooooooooooo
33 : ooooooooooooooooooooooooooooooooo
34 : oooooooooooooooooooooooooooooooooo
35 : ooooooooooooooooooooooooooooooooooo
36 : oooooooooooooooooooooooooooooooooooo
37 : ooooooooooooooooooooooooooooooooooooo
38 : oooooooooooooooooooooooooooooooooooooo
39 : ooooooooooooooooooooooooooooooooooooooo
40 : oooooooooooooooooooooooooooooooooooooooo
41 : ooooooooooooooooooooooooooooooooooooooooo
42 : oooooooooooooooooooooooooooooooooooooooooo
43 : ooooooooooooooooooooooooooooooooooooooooooo
44 : oooooooooooooooooooooooooooooooooooooooooooo
45 : ooooooooooooooooooooooooooooooooooooooooooooo
46 : oooooooooooooooooooooooooooooooooooooooooooooo
47 : ooooooooooooooooooooooooooooooooooooooooooooooo
48 : oooooooooooooooooooooooooooooooooooooooooooooooo
49 : ooooooooooooooooooooooooooooooooooooooooooooooooo
`
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/