package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?miU)^\/prifix\/([a-zA-Z0-9_\-\!\.\/]+)\/{0,1}((\/(full|square|([1-9]\d*|0),([1-9]\d*|0),([1-9]\d*),([1-9]\d*)|pct:(([1-9]\d*|0)(\.\d+)?),(([1-9]\d*|0)(\.\d+)?),([1-9]\d{0,1}(\.\d*)?|0\.[0]*[1-9]+|100(\.0+)?),([1-9]\d{0,1}(\.\d*)?|0\.[0]*[1-9]+|100(\.0+)?)|(\w+))\/(full|max|([1-9]\d*),|,([1-9]\d*)|(\!)?([1-9]\d*),([1-9]\d*)|pct:(([1-9]\d*)(\.\d+)?)|(\w+))\/(\!)?([1-9]\d*|0|(\w+))(\.\d+)?\/(default|color|gray|bitonal|(\w+))\.(jpg|tif|png|webp|pdf|jp2|(\w+)))|info\.json){0,1}$`)
var str = `/prifix/imageID/1024,1024,1024,1024/1024,1024/0/default.jpg
/prifix/imageID/1024,1024,1024,1024/!1024,1024/0/default.jpg
/prifix/imageID/1024,1024,1024,1024/1024,/0/default.jpg
/prifix/imageID/1024,1024,1024,1024/,1024/0/default.jpg
/prifix/imageID/full/PCT:50/0/default.jpg
/prifix/imageID/SqUarE/1024,/0/deFAult.jPg
/prifix/imageID/SqUarE/,1024/0/deFAult.jPg
/prifix/imageID/SqUarE/1024,2048/0/deFAult.jPg
/prifix/imageID/SqUarE/full/0/deFAult.jPg
/prifix/imageID/inFo.json
/prifix/imageID/
/prifix/imageID
/prifix/errorFormate/aaa/bbb/ccc/ddd.jpg
`
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/