package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?i)(\s|\()like(\s|\))\s*\(('((\w|%|'{2})]*)')\s*\+\s?@p\d+\s*\+('%')\)`)
var str = `where ( i like 'b' ) and concat(a,b) like ('%'+@p2+'%')
a + 'b' like ('%'+@p2+'%')
concat(a,b) like ('%'+@p2+'%') or ltrim(a) like ('%'+@p2+'%')
select * from a where concat(a,b) like 'a' and c like d or ltrim(a) like ('%'+@p2+'%')`
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/