re = /(?<=\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))/m
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 { }
}
'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html