package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?<=\bdestination\s\/\S+\/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:)(?:2[89][0-9]{3}|3[01][0-9]{3}|32[0-6][0-9]{2}|327[0-5][0-9]|6[5-9][0-9]{3}|65[0-4][0-9]{2}|6553[0-5]|(?:22|53|68|323|500|1067|2379|2380|4500|5355|6443|8005|8007|8087|8443|8444|8505|8507|9007|9090|9153|9999|10249|10250|10251|10252|10256|10257|10259|18091|18092|18093|18095|22222|23790|23791|23801|23802))`)
var str = `
ltm virtual /Common/byoadc-VIP {
description mylistener.byoadc.com
destination /Common/157.109.110.76:28010
ip-protocol tcp
last-modified-time 2023-04-15:13:23:53
mask 255.255.255.255
pool /Common/SSLSUPPORT-POOL
profiles {
/Common/byoadc_2024 {
context clientside
}
/Common/http { }
/Common/tcp { }
}
ltm virtual /Microsoft-Exchange/pool-int-dns-tcp-53 {
destination /Microsoft-Exchange/10.175.99.145:53
ip-protocol tcp
mask 255.255.255.255
pool /Microsoft-Exchange/pool-int-dns-53
profiles {
/Common/tcp { }
}
`
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/