#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)\b" & @CRLF & _
"\+?1?" & @CRLF & _
"(?<separator>\s|-|\.)?" & @CRLF & _
"(?: # area code with optional parentheses" & @CRLF & _
" (?<area_code>[2-9][0-8]\d)" & @CRLF & _
" |\((?&area_code)\)" & @CRLF & _
")" & @CRLF & _
"(?&separator)?" & @CRLF & _
"(?: # exchange" & @CRLF & _
" (?!555)" & @CRLF & _
" [2-9]" & @CRLF & _
" (?!11)\d\d" & @CRLF & _
")" & @CRLF & _
"(?&separator)?" & @CRLF & _
"\d{4} # line" & @CRLF & _
"\b"
Local $sString = "212 718-1234" & @CRLF & _
"(212)718-1234" & @CRLF & _
"(212) 718-1234" & @CRLF & _
"1(212)718-1234" & @CRLF & _
"1-212-718-1234" & @CRLF & _
"1.212.718.1234" & @CRLF & _
"+1-212-718-1234" & @CRLF & _
"+1.212.718.1234" & @CRLF & _
"1-212-718-1234" & @CRLF & _
"+1 (212) 718-1234" & @CRLF & _
"" & @CRLF & _
"# 1-VALID 2-VALID 4-VALID" & @CRLF & _
"231 212 1234" & @CRLF & _
"" & @CRLF & _
"234-235-5678 is a valid telephone number with area code 234, central office prefix (exchange) 235, and line number 5678. " & @CRLF & _
"" & @CRLF & _
"12127181234" & @CRLF & _
"(212)7181234" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"# 1-INVALID 2-INVALID 4-INVALID" & @CRLF & _
"091 012 1234" & @CRLF & _
"# 1-INVALID 2-VALID 4-INVALID" & @CRLF & _
"081 012 1234" & @CRLF & _
"171 012 1234" & @CRLF & _
"# 1-VALID 2-VALID 4-INVALID" & @CRLF & _
"231 012 1234" & @CRLF & _
"# 1-INVALID 2-INVALID 4-VALID" & @CRLF & _
"091 212 1234" & @CRLF & _
"# 1-INVALID 2-VALID 4-VALID" & @CRLF & _
"081 212 1234" & @CRLF & _
"171 212 1234" & @CRLF & _
"231 555 1234" & @CRLF & _
"" & @CRLF & _
"867-5309 missing area code" & @CRLF & _
"" & @CRLF & _
"The number 234-911-5678 is invalid, because the central office code must not be in the form N11. 314-159-2653 is invalid, because the office code must not begin with 1. 123-234-5678 is invalid, because the NPA must not begin with 0 or 1." & @CRLF & _
"" & @CRLF & _
"1 212) 718 1234" & @CRLF & _
"" & @CRLF & _
"121271812341212718123412127181234"
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