package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?:lazy_)?ngtxt\(([\"\'])((?:(?!\1)[^\\]|\\.)+)\1,\s*([\"\'])((?:(?!\3)[^\\]|\\.)+)\3,\s*(?:.+?)\)`)
var str = `* ngtxt('i am in single-quotes', 'i am in single-quotes 2', foo)
* ngtxt('i have \' an escaped single-quote within single-quotes', 'i have \' an escaped single-quote within single-quotes 2', foo)
* ngtxt('i have a "double-quote" in single-quotes', 'i have a "double-quote" in single-quotes 2', foo)
* ngtxt("i am in double-quotes", "i am in double-quotes 2", foo)
* ngtxt("i am in double-quotes with single 'quotes'", "i am in double-quotes with single 'quotes' 2", foo)
* ngtxt('i have an escaped double-quote \" within double-quotes', 'i have an escaped double-quote \" within double-quotes 2', foo)
* ngtxt('i am singular in single-quotes', "i am plural in double-quotes", foo)
`
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/