#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?im)^[a-z0-9]+(?:[.\-_'+][a-z0-9]+)*@([a-z0-9]+(?:[-][a-z0-9]+)*\.)+[a-z]{2,}$"
Local $sString = "Valid emails:" & @CRLF & _
"user@domain.ru" & @CRLF & _
"na_me.lastname@subdomain.domain.ru" & @CRLF & _
"name-lastname@7.sub-sub-domain.subdomain.domain.ru" & @CRLF & _
"ni+ck'name-name.lastname@d.oma-in-domain.ru" & @CRLF & _
"" & @CRLF & _
"Invalid addresses in the user section:" & @CRLF & _
".user@domain.ru" & @CRLF & _
"user.@domain.ru" & @CRLF & _
"-user@domain.ru" & @CRLF & _
"user-@domain.ru" & @CRLF & _
"us..er@domain.ru" & @CRLF & _
"us--er@domain.ru" & @CRLF & _
"" & @CRLF & _
"Invalid addresses in the domain section:" & @CRLF & _
"user@-domain.ru" & @CRLF & _
"user@.subdomain.domain.ru" & @CRLF & _
"user@subdomain-.domain.ru" & @CRLF & _
"user@subdomain..domain.ru" & @CRLF & _
"user@domain.-domain.ru" & @CRLF & _
"user@dom--ain.ru"
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