#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)\b((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)+(?:\/{1}((?:[0-9])|(?:[1-2][0-9])|(?:3[0-2]))\b)?)|((?:[a-f0-9:]+:+)+(?:[a-f0-9])+(?:\/{1}((?:(?:3[0-2]|[12]?\d)))\b)?)"
Local $sString = " 192.168.1.1 192.168.2.1" & @CRLF & _
" 192.168.3.1" & @CRLF & _
" "192.168.10.1", "192.168.10.257" 10.0.0.1, 8.8.8.8" & @CRLF & _
"" & @CRLF & _
" not_an_ip "192.168.0.1 10.9.9.0" & @CRLF & _
" random text here" & @CRLF & _
" 127.0.0.1" & @CRLF & _
" 192.168.23.12" & @CRLF & _
"" & @CRLF & _
" 2001:db8::" & @CRLF & _
" ::1234:5678" & @CRLF & _
" 2001:db8::1234:5678" & @CRLF & _
"" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468" & @CRLF & _
" " & @CRLF & _
" 192.168.3.1/32" & @CRLF & _
" 10.0.0.0/0" & @CRLF & _
" 12.10.0.0/24" & @CRLF & _
" 10.0.0.0/24" & @CRLF & _
" 10.0.0.0/99" & @CRLF & _
" 1.1.1.25/23" & @CRLF & _
" 0.0.0.0/3" & @CRLF & _
"" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/0" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/9" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/10" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/15" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/22" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/32" & @CRLF & _
" 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/41" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm