package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?:<(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</\1\s*(?=>))|(?:/?[\w:]+\s*/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]?)+\s*/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>(*SKIP)(*FAIL)|[<>"&'])`)
var str = `Lorem ipsum dolor sit amet, "consetetur" sadipscing elitr.
<ul>
<li>At vero eos et accusam et justo</li
<li>Stet clita "kasd" gubergren</li>
</ul>
<a href="https://www.google.com/" target="_blank">https://www.google.com/</a>
"At vero eos et accusam et justo duo dolores et ea rebum. , no sea takimata sanctus est Lorem ipsum dolor sit amet."`
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/