#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(?:^|\b(?<!\.))(?:1?\d?\d|2[0-4]\d|25[0-5])(?:\.(?:1?\d?\d|2[0-4]\d|25[0-5])){3}(?=$|[^\w.])|(?:^|\b(?<!\.))(?:1?\d?\d|2[0-4]\d|25[0-5])(?:\.(?:1?\d?\d|2[0-4]\d|25[0-5]))(?:\.\W.*)(?:1?\d?\d|2[0-4]\d|25[0-5])|(?:1?\d?\d|2[0-4]\d|25[0-5])(?:\.(?:1?\d?\d|2[0-4]\d|25[0-5])){2}(?:\.[\W].+)(?:\})"
Local $sString = "My input string & constraints are as follows :" & @CRLF & _
"" & @CRLF & _
" IPv4 Range : 0.0.0.0 to 255.255.255.255 55.123.99.988 256.1.1.1" & @CRLF & _
" IPv4 address may / may not be present in the string" & @CRLF & _
" Valid Examples : this is an ip & this is an ip 200.100.2.32" & @CRLF & _
" String may start with IPv4 address 10.250.{{ number*2 }}.5 sdsd" & @CRLF & _
" Valid Examples : 10.250.5.{{ number*2 }} asdf" & @CRLF & _
"200.100.2.{{ number*2 }} is an ip | Output : ['200.100.2.32']" & @CRLF & _
" Invalid Examples :" & @CRLF & _
"200.100.2.32is an ip | Output : []" & @CRLF & _
" String may end with IPv4 address" & @CRLF & _
" Valid Examples : the ip is 200.100.2.32" & @CRLF & _
"Output : ['200.100.2.32']" & @CRLF & _
" Invalid Examples : the ip is200.100.2.32" & @CRLF & _
"Output : []" & @CRLF & _
" String may contain an IPv4 address in the middle, and if it does - there will a space before and after the IPv4 address." & @CRLF & _
" Valid Examples : the ip is 200.100.2.32 and it is ipv4 | Output : ['200.100.2.32']" & @CRLF & _
" Valid Examples : the ip is 200.100.2.32and it is ipv4 | Output : []" & @CRLF & _
" Multiple IPs may be present in a single string" & @CRLF & _
" Valid Examples : 200.100.2.32 100.50.1.16 | Output : ['200.100.2.32', '100.50.1.16']" & @CRLF & _
" Invalid Examples : 200.100.2.32.100.50.1.16 | Output : []" & @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