package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`\[?\s*(\d+)\s*(?=(?:,\s*\d+)+|\])(?=[^\[]*\]).`)
var str = `there were 4 cats [ 85] and 3 dogs [4,14][2] [3]
there are 17 cats [1 , 2,3,4,5]
these were my favorite paragraphs [1, 2, 75, 99]
the children's ages were 1, 4, and 12 [4,3, 2, 17,7,10]
As you can see it handles numbers outside of citations, multiple citations pretty well.
However it does depend on a fairly reliable citation format.`
var substitution = "[$1]"
fmt.Println(re.ReplaceAllString(str, substitution))
}
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/