package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^(?!(?:.+?%20){3}+.)(?:.+?%20){2}.+?(?:%20)?$`)
var str = `https://domain.com/search=any%20url%20encoded_word-here
https://domain.com/search=any%20url%20encoded_word-here%20
https://domain.com/search=z%C5%82oty%20z%C5%82oty%20z%C5%82oty
https://domain.com/search=z%C5%82oty%20z%C5%82ota%20%C5%82ata
https://domain.com/search=any%20%20word%20%20here
https://domain.com/search=any%20word%20here&color=blue
https://domain.com/search=any-1st%20word_2nd%20here3
https://example.com/search=one%20two
https://domain.com/search=one%20two%20three%20four
https://domain.com/search=one%20%20two%20%20three%20%20four
https://domain.com/search=one%20%20two%20three%20%20four
https://domain.com/search=one%20%20two%20%20three%20%20four
https://domain.com/search=one%20two%20three%20four&color=blue
https://domain.com/search=z%C5%82oty%20z%C5%82oty%20z%C5%82oty%20word
`
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/