package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?P<Registry>[a-z0-9\-.]+\.[a-z0-9\-]+:?[0-9]*)?/?((?P<Name>[a-zA-Z0-9-_]+?)|(?P<UserName>[a-zA-Z0-9-_]+?)/(?P<ImageName>[a-zA-Z-_]+?))(:(?P<Tag>[a-zA-Z0-9-_\\.]+?)|)$`)
var str = `localhost.local:6000/worker-ocr:20423.32.41-R212-7843
test.azurecr.io/worker-ocr:20423.32.41-R212-7843
docker.io/bitnami/minideb:buster
docker.io/bitnami/redis-exporter:1.21.0-debian-10-r1
docker.io/bitnami/redis:6.2.2
docker.io/bitnami/postgresql:12.2.0
docker.io/bitnami/postgres-exporter:0.7.0-debian-9-r12
docker.io/bitnami/minideb:stretch
docker.io/bitnami/fluentd:1.12.0-debian-10-r0
fluent/fluent-bit:1.3.7
consul:1.8.2
curlimages/curl:latest
hashicorp/consul:1.9.7
k8s.gcr.io/defaultbackend-amd64:1.5
k8s.gcr.io/ingress-nginx/controller:v1.0.4
ghcr.io/kedacore/keda:2.2.0
ghcr.io/kedacore/keda-metrics-apiserver:2.2.0
docker.io/busybox`
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/