package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)((?:(?:H[eogf]?|L[iau]|B[eari]?|C[arouseld]?|N[eiapdb]?|O[sg]?|F[rle]?|M[gon]|A[lrsgutc]|S[icernmb]?|P[uabotmrd]?|Kr?|T[icebmalh]|V|Z[nr]|G[ade]|R[buhena]|Yb?|I[nr]?|Xe|E[ur]|Dy|W|U)+(?:(?:<su[bp]>(?:[2-9][0-9]*)<\/su[bp]>)|[2-9][0-9]*)*){2,})`)
var str = `\nNH<sub>2</sub>CONH<sub>21</sub>, F.W.
\nsNH<sub>2</sub>CONH, F.W. 60.06<br />\nCAS No. 57-13-6</p>\n<p>Shipping: Not regulated for
/>\nFeO<sub>2</sub>dsa
fooasdfNH<sub>2</sub>CONH<sub>2</sub>NH<sub>2</sub>CONH<sub>2</sub>NH<sub>2</sub>CONH<sub>2</sub>NH<sub>2</sub>CONH<sub>2</sub>He
NH2CONH`
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/