#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^(?![^a-zA-Z0-9])(?:(?![.]{2,})[a-zA-Z0-9_\-.])+(?<![.])@(?:(?![^a-zA-Z0-9])(?:[a-zA-Z0-9_\-])+(?<![^a-zA-Z0-9])\.)+[a-zA-Z]{2,}$"
Local $sString = "email@example.com" & @CRLF & _
"email@111.222.333.fr" & @CRLF & _
"firstname.lastname@example.com" & @CRLF & _
"email@subdomain.example.com" & @CRLF & _
"123@gmail.com" & @CRLF & _
"123@51gmail62548.com" & @CRLF & _
"1234567890@example.com" & @CRLF & _
"a.defosseux@tbs-education.fr" & @CRLF & _
"email@example-one.com" & @CRLF & _
"email@example.name" & @CRLF & _
"email@example.museum" & @CRLF & _
"email@example.co.jp" & @CRLF & _
"firstname-lastname@example.com" & @CRLF & _
"test@test.com" & @CRLF & _
"ezf@aezf.fr.en" & @CRLF & _
"azer123@123.fr" & @CRLF & _
"a@a.bb" & @CRLF & _
"a@a.ccc" & @CRLF & _
"a@bb.bb" & @CRLF & _
"a.a@bb.bb" & @CRLF & _
"a.a.a@bb.bb" & @CRLF & _
"a.a.a@a.bb.bb" & @CRLF & _
"a.a.a.a@a.a.bb" & @CRLF & _
"a.a.a.a@a.bb.bb" & @CRLF & _
"a.a.a.a@a.bb.ccc" & @CRLF & _
"a.bb.a.a@a.bb.ccc" & @CRLF & _
"a--a.a@a.bb.ccc" & @CRLF & _
"a.defosseux@tbs-education.x.fr" & @CRLF & _
"a.defosseux@tbs-education.x.y.fr" & @CRLF & _
"a.defosseux@tbs-education.x-e.y.fr" & @CRLF & _
"email@example-one.com" & @CRLF & _
"ema.il@example.com" & @CRLF & _
"e.ma.il@example.com" & @CRLF & _
"ema-il@example.com" & @CRLF & _
"e-ma-il@example.com" & @CRLF & _
"ema--il@example.com" & @CRLF & _
"em_ail@example.com" & @CRLF & _
"em__ail@example.com" & @CRLF & _
"6email@example.com" & @CRLF & _
"email6@example.com" & @CRLF & _
"6email6@example.com" & @CRLF & _
"test-test@x.fr" & @CRLF & _
"tes-t-test@x.fr" & @CRLF & _
"yasmina.achak@e.rascol.net" & @CRLF & _
"yasmina.achak@e.rascol.net.aezr.azerz.azer.azreezr.azeraez.azer" & @CRLF & _
"yasmina.achak@e.rascol.barce" & @CRLF & _
"yasmina.achak@e.rascol.bar" & @CRLF & _
"yasmina.achak@e.ba" & @CRLF & _
"sarah_benabdell@yahoo.fr" & @CRLF & _
"sarah__benabdellah@yahoo.fr" & @CRLF & _
"sarah---benabdellah@yahoo.fr" & @CRLF & _
"sarah___---benabdellah@yahoo.fr" & @CRLF & _
"marieagnes.paul@off---white.com" & @CRLF & _
"a.a@bb--bb.ccc" & @CRLF & _
"a.a@bb--bb.a.ccc" & @CRLF & _
"a_a@a.bb" & @CRLF & _
"a_a@a.bb" & @CRLF & _
"email-@example.com" & @CRLF & _
"email_@example.com" & @CRLF & _
"a_@a.bb" & @CRLF & _
"a._@a.bb" & @CRLF & _
"" & @CRLF & _
"a@ccc" & @CRLF & _
"#@%^%#$@#$@#.com" & @CRLF & _
"@example.com" & @CRLF & _
"Joe Smith <email@example.com>" & @CRLF & _
"email.example.com" & @CRLF & _
"email@example@example.com" & @CRLF & _
"email.@example.com" & @CRLF & _
"email..email@example.com" & @CRLF & _
"あいうえお@example.com" & @CRLF & _
"email@example.com (Joe Smith)" & @CRLF & _
"email@example" & @CRLF & _
"email@-example.com" & @CRLF & _
"email@111.222.333.44444" & @CRLF & _
"email@example..com" & @CRLF & _
"a..reds@free.fr" & @CRLF & _
"Abc..123@example.com" & @CRLF & _
"”(),:;<>[\]@example.com" & @CRLF & _
"just”not”right@example.com" & @CRLF & _
"this\ is"really"not\allowed@example.com" & @CRLF & _
"firstname+lastname@example.com" & @CRLF & _
"email@123.123.123.123" & @CRLF & _
"email@[123.123.123.123]" & @CRLF & _
""email"@example.com" & @CRLF & _
"_______@example.com" & @CRLF & _
"much."more\ unusual"@example.com" & @CRLF & _
"very.unusual.”@”.unusual.com@example.com" & @CRLF & _
"very.”(),:;<>[]”.VERY.”very@\\ "very”.unusual@strange.example.com" & @CRLF & _
"azer aezr@test.com" & @CRLF & _
"zaetazfe.faezf" & @CRLF & _
"af@ezfezf" & @CRLF & _
"ez#!~f@aezf.fr" & @CRLF & _
"azefé@test.com" & @CRLF & _
"aze@zaé.com" & @CRLF & _
"a@a.a" & @CRLF & _
"a.a@a.a" & @CRLF & _
"a.a@a.a.a" & @CRLF & _
"a.a.a.a@a.a.a" & @CRLF & _
"a.a.a.a@a.a.a.a" & @CRLF & _
"a..a.a@a.bb.ccc" & @CRLF & _
"a.é@b.fr" & @CRLF & _
"azer.@fr" & @CRLF & _
".azer@fr" & @CRLF & _
"a.defosseux@tbs-education-.fr" & @CRLF & _
"a.defosseux@-tbs-education.fr" & @CRLF & _
"a.defosseux@-tbs-education-.fr" & @CRLF & _
"a.defosseux@1234tbs-education.-x-.fr" & @CRLF & _
".email@example.com" & @CRLF & _
".email.@example.com" & @CRLF & _
"email.@example.com" & @CRLF & _
"ema..il@example.com" & @CRLF & _
"-email@example.com" & @CRLF & _
"-email-@example.com" & @CRLF & _
"_email@example.com" & @CRLF & _
"_email_@example.com" & @CRLF & _
"_em_ail_@example.com" & @CRLF & _
"_em__ail_@example.com" & @CRLF & _
"yaémina.achak@e.rascol.net" & @CRLF & _
".-y__as-min-.@eerez.fr" & @CRLF & _
"yasmina.achak@e.b" & @CRLF & _
"yasmina.achak@e....bar" & @CRLF & _
"_a_@a.bb" & @CRLF & _
"_a@a.bb" & @CRLF & _
"_.a@a.bb" & @CRLF & _
"_.a._@a.bb" & @CRLF & _
"a@_a.bb" & @CRLF & _
"a@a_.bb" & @CRLF & _
"a@_a_.bb" & @CRLF & _
"a@a._bb_.ccc" & @CRLF & _
"a@a.__a__a__.ccc" & @CRLF & _
"a@a.__.bb.ccc"
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