#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|\d+L?|\*(\/\d+)?|L(-\d+)?|\?|[A-Z]{3}(-[A-Z]{3})?) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$"
Local $sString = "# cron" & @CRLF & _
"0 0 1 1 * 1" & @CRLF & _
"0 0 1 1 * 1,2" & @CRLF & _
"0 0 1 1 * 1,2,3" & @CRLF & _
"0 0 1 * * 1/4" & @CRLF & _
"0 0 * * 0 1-4" & @CRLF & _
"0 0 * * * 2/4" & @CRLF & _
"0 * * * * *" & @CRLF & _
"" & @CRLF & _
"# variations" & @CRLF & _
"10 12 * * 1,2,3,4,5" & @CRLF & _
"* 10 12 * * 1,2,3,4,5" & @CRLF & _
"* */5 * * * *" & @CRLF & _
"" & @CRLF & _
"*/4 */4 */4 * * *" & @CRLF & _
"" & @CRLF & _
"# At 12:00 pm (noon) every day during the year 2017:" & @CRLF & _
"0 0 12 * * ? 2017" & @CRLF & _
"# Every 5 minutes starting at 1 pm and ending on 1:55 pm and then starting at 6 pm and ending at 6:55 pm, every day:" & @CRLF & _
"0 0/5 13,18 * * ?" & @CRLF & _
"# Every minute starting at 1 pm and ending on 1:05 pm, every day:" & @CRLF & _
"0 0-5 13 * * ?" & @CRLF & _
"# At 1:15 pm and 1:45 pm every Tuesday in the month of June:" & @CRLF & _
"0 15,45 13 ? 6 Tue" & @CRLF & _
"# At 9:30 am every Monday, Tuesday, Wednesday, Thursday, and Friday:" & @CRLF & _
"0 30 9 ? * MON-FRI" & @CRLF & _
"# At 9:30 am on 15th day of every month:" & @CRLF & _
"0 30 9 15 * ?" & @CRLF & _
"# At 6 pm on the last day of every month:" & @CRLF & _
"0 0 18 L * ?" & @CRLF & _
"# At 6 pm on the 3rd to last day of every month:" & @CRLF & _
"0 0 18 L-3 * ?" & @CRLF & _
"# At 10:30 am on the last Thursday of every month:" & @CRLF & _
"0 30 10 ? * 5L" & @CRLF & _
"# At 6 pm on the last Friday of every month during the years 2015, 2016 and 2017:" & @CRLF & _
"0 0 18 ? * 6L 2015-2017" & @CRLF & _
"# At 10 am on the third Monday of every month:" & @CRLF & _
"0 0 10 ? * 2#3" & @CRLF & _
"# At 12 am midnight on every day for five days starting on the 10th day of the month:" & @CRLF & _
"0 0 0 10/5 * ?" & @CRLF & _
"" & @CRLF & _
"# more" & @CRLF & _
"0 0 12 * * ?" & @CRLF & _
"0 15 10 ? * *" & @CRLF & _
"0 15 10 * * ?" & @CRLF & _
"0 15 10 * * ? *" & @CRLF & _
"0 15 10 * * ? 2005" & @CRLF & _
"0 * 14 * * ?" & @CRLF & _
"0 0/5 14 * * ?" & @CRLF & _
"0 0/5 14,18 * * ?" & @CRLF & _
"0 0-5 14 * * ?" & @CRLF & _
"0 10,44 14 ? 3 WED" & @CRLF & _
"0 15 10 ? * MON-FRI" & @CRLF & _
"0 15 10 15 * ?" & @CRLF & _
"0 15 10 ? * 6L" & @CRLF & _
"0 15 10 ? * 6L 2002-2005" & @CRLF & _
"0 15 10 ? * 6#3" & @CRLF & _
"0 0 12 1/5 * ?" & @CRLF & _
"0 11 11 11 11 ?" & @CRLF & _
"" & @CRLF & _
"# predefined" & @CRLF & _
"@annually" & @CRLF & _
"@yearly" & @CRLF & _
"@monthly" & @CRLF & _
"@weekly" & @CRLF & _
"@daily" & @CRLF & _
"@hourly" & @CRLF & _
"@reboot" & @CRLF & _
"" & @CRLF & _
"# every" & @CRLF & _
"@every 5s" & @CRLF & _
"@every 20h30m" & @CRLF & _
"" & @CRLF & _
"#individual forms" & @CRLF & _
"1,2,3" & @CRLF & _
"1,2" & @CRLF & _
"1/2" & @CRLF & _
"1-2" & @CRLF & _
"1" & @CRLF & _
"*" & @CRLF & _
"0" & @CRLF & _
"*/4" & @CRLF & _
"6#3" & @CRLF & _
"L" & @CRLF & _
"5L" & @CRLF & _
"L-2" & @CRLF & _
"" & @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