#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)^" & @CRLF & _
"(?:" & @CRLF & _
"\d{1,4}|" & @CRLF & _
"\d{4}-|" & @CRLF & _
"\d{4}-[01]|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-[0-3]|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s[0-2]|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d)|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):[0-5]|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):[0-5]\d|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):[0-5]\d:|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):[0-5]\d:[0-5]|" & @CRLF & _
"\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[0-1])\s(?:2[0-3]|[01]\d):[0-5]\d:[0-5]\d" & @CRLF & _
")" & @CRLF & _
"$"
Local $sString = "2" & @CRLF & _
"-" & @CRLF & _
"20" & @CRLF & _
"20a" & @CRLF & _
"201" & @CRLF & _
"2018" & @CRLF & _
"2018-" & @CRLF & _
"2018-0" & @CRLF & _
"2018-02" & @CRLF & _
"2018-02-" & @CRLF & _
"2018-02-1" & @CRLF & _
"2018-02-1@" & @CRLF & _
"2018-02-12" & @CRLF & _
"2018-02-12 " & @CRLF & _
"2018-02-12 0" & @CRLF & _
"2018-02-12 00" & @CRLF & _
"2018@02-12 00:" & @CRLF & _
"2018-02-12 00:" & @CRLF & _
"2018-02-12 00:5" & @CRLF & _
"2018-02-12 00:55" & @CRLF & _
"2018-02-12 00:55:" & @CRLF & _
"2018-02-12 00:55:2" & @CRLF & _
"2018-02-12 00:55:2z" & @CRLF & _
"2018-02-12 00:55:22"
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