#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?x) (?(DEFINE)" & @CRLF & _
" (?<addr_spec> (?&local_part) @ (?&domain) )" & @CRLF & _
" (?<local_part> (?&dot_atom) | (?"ed_string) | (?&obs_local_part) )" & @CRLF & _
" (?<domain> (?&dot_atom) | (?&domain_literal) | (?&obs_domain) )" & @CRLF & _
" (?<domain_literal> (?&CFWS)? \[ (?: (?&FWS)? (?&dtext) )* (?&FWS)? \] (?&CFWS)? )" & @CRLF & _
" (?<dtext> [\x21-\x5a] | [\x5e-\x7e] | (?&obs_dtext) )" & @CRLF & _
" (?<quoted_pair> \\ (?: (?&VCHAR) | (?&WSP) ) | (?&obs_qp) )" & @CRLF & _
" (?<dot_atom> (?&CFWS)? (?&dot_atom_text) (?&CFWS)? )" & @CRLF & _
" (?<dot_atom_text> (?&atext) (?: \. (?&atext) )* )" & @CRLF & _
" (?<atext> [a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+ )" & @CRLF & _
" (?<atom> (?&CFWS)? (?&atext) (?&CFWS)? )" & @CRLF & _
" (?<word> (?&atom) | (?"ed_string) )" & @CRLF & _
" (?<quoted_string> (?&CFWS)? " (?: (?&FWS)? (?&qcontent) )* (?&FWS)? " (?&CFWS)? )" & @CRLF & _
" (?<qcontent> (?&qtext) | (?"ed_pair) )" & @CRLF & _
" (?<qtext> \x21 | [\x23-\x5b] | [\x5d-\x7e] | (?&obs_qtext) )" & @CRLF & _
"" & @CRLF & _
" # comments and whitespace" & @CRLF & _
" (?<FWS> (?: (?&WSP)* \r\n )? (?&WSP)+ | (?&obs_FWS) )" & @CRLF & _
" (?<CFWS> (?: (?&FWS)? (?&comment) )+ (?&FWS)? | (?&FWS) )" & @CRLF & _
" (?<comment> \( (?: (?&FWS)? (?&ccontent) )* (?&FWS)? \) )" & @CRLF & _
" (?<ccontent> (?&ctext) | (?"ed_pair) | (?&comment) )" & @CRLF & _
" (?<ctext> [\x21-\x27] | [\x2a-\x5b] | [\x5d-\x7e] | (?&obs_ctext) )" & @CRLF & _
"" & @CRLF & _
" # obsolete tokens" & @CRLF & _
" (?<obs_domain> (?&atom) (?: \. (?&atom) )* )" & @CRLF & _
" (?<obs_local_part> (?&word) (?: \. (?&word) )* )" & @CRLF & _
" (?<obs_dtext> (?&obs_NO_WS_CTL) | (?"ed_pair) )" & @CRLF & _
" (?<obs_qp> \\ (?: \x00 | (?&obs_NO_WS_CTL) | \n | \r ) )" & @CRLF & _
" (?<obs_FWS> (?&WSP)+ (?: \r\n (?&WSP)+ )* )" & @CRLF & _
" (?<obs_ctext> (?&obs_NO_WS_CTL) )" & @CRLF & _
" (?<obs_qtext> (?&obs_NO_WS_CTL) )" & @CRLF & _
" (?<obs_NO_WS_CTL> [\x01-\x08] | \x0b | \x0c | [\x0e-\x1f] | \x7f )" & @CRLF & _
"" & @CRLF & _
" # character class definitions" & @CRLF & _
" (?<VCHAR> [\x21-\x7E] )" & @CRLF & _
" (?<WSP> [ \t] )" & @CRLF & _
" )" & @CRLF & _
" ^(?&addr_spec)$"
Local $sString = "fdas@gad.com"
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