package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)\[data-testid=([^\]]*?)\](?!.*\[data-testid=.*?\])`)
var str = `@header;.header-area;.sticky;|@div;.container;|@div;.row;|@div;.col-lg-12;|@nav;.navbar;.navbar-expand-lg;|@div;#navbarSupportedContent;.collapse;.navbar-collapse;|@ul;#nav;.ml-auto;.navbar-nav;|@li;.active;.nav-item;|@a;[data-testid=foo];[href=#service];|
@section;#contact;.contact-area;.pt-115;|@div;.container;|@div;.contact-box;.mt-70;|@div;.row;|@div;.col-lg-8;|@div;.contact-form;|@form;#contact-form;[data-toggle=validator];[method=post];|@div;.row;|@div;.col-lg-12;|@div;.form-group;.single-form;|@button;.main-btn;[type=submit][data-testid=bar];|`
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/