package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?:\n|^)(?:[^'"])*?(?:'(?:[^\\\r\n]|[\\]{2}|\\')*'|"(?:[^\\\r\n]|[\\]{2}|\\")*")*?(?:[^'"])*?(\/\*(?:[\s\S]*?)\*\/)`)
var str = `/* block 1 multi
*/
var b = function(){ /* block 2 contained */ };
"/* invalid block */";
"\" /* invalid block tricky */";
"\\ \\\""; /* valid block tricky */
// Ignore Case: note - collapse regex first, then block comments
var trickiest = /\/* invalid block trickiest */gmi;
`
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/