#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mxJ)(?:\n{2,}|\A)" & @CRLF & _
"(?<table>" & @CRLF & _
" (?<table_header>" & @CRLF & _
" (?:" & @CRLF & _
" (?<th_single_col>(?&t_th_single_col))" & @CRLF & _
" |" & @CRLF & _
" (?<th_multi_col>(?&t_th_multi_col))" & @CRLF & _
" )" & @CRLF & _
" (?<table_header_sep>(?&t_th_sep))" & @CRLF & _
" ){0,2}" & @CRLF & _
" (?<table_row>(?&t_row))+" & @CRLF & _
" (?<table_after>" & @CRLF & _
" \z" & @CRLF & _
" |" & @CRLF & _
" \n{2}" & @CRLF & _
" (?!" & @CRLF & _
" (?<next_table_header>" & @CRLF & _
" (?:" & @CRLF & _
" (?<next_th_single_col>(?&t_th_single_col))" & @CRLF & _
" |" & @CRLF & _
" (?<next_th_multi_col>(?&t_th_multi_col))" & @CRLF & _
" )" & @CRLF & _
" (?<next_table_header_sep>(?&t_th_sep))" & @CRLF & _
" ){0,2}" & @CRLF & _
" (?<table_row>(?&t_row))" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
")" & @CRLF & _
"" & @CRLF & _
"(?(DEFINE)" & @CRLF & _
" (?<t_th_single_col>" & @CRLF & _
" (?:" & @CRLF & _
" [ ]{0,3}" & @CRLF & _
" (?<t_th_start_pipe>\|)" & @CRLF & _
" [^\|\n]+?" & @CRLF & _
" \|?" & @CRLF & _
" \n" & @CRLF & _
" )" & @CRLF & _
" |" & @CRLF & _
" (?:" & @CRLF & _
" [^\|\n]+?" & @CRLF & _
" \|" & @CRLF & _
" \n" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" (?<t_th_multi_col>" & @CRLF & _
" (?:" & @CRLF & _
" [ ]{0,3}" & @CRLF & _
" (?:\| [^\|\n]+? \|{1,2})" & @CRLF & _
" (?:\|{0,2} [^\|\n]+? \|{0,2})+" & @CRLF & _
" \n" & @CRLF & _
" )" & @CRLF & _
" |" & @CRLF & _
" (?:" & @CRLF & _
" (?: [^\|\n]+ \|{1,2})" & @CRLF & _
" (?:\|{0,2} [^\|\n]+? \|{0,2})+" & @CRLF & _
" \n" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" (?<t_th_sep>" & @CRLF & _
" [\+\-\|][\-\|\+\: ]+\n" & @CRLF & _
" )" & @CRLF & _
" (?<t_row>" & @CRLF & _
" (?(<th_single_col>)" & @CRLF & _
" (?:" & @CRLF & _
" [ ]{0,3}" & @CRLF & _
" (?<tr_start_mark>[\|\:])?" & @CRLF & _
" (?<tr_col_content>.+?)" & @CRLF & _
" (?(<tr_start_mark>)[\|\:]?|[\|\:])" & @CRLF & _
" \n{1,2}" & @CRLF & _
" )" & @CRLF & _
" |" & @CRLF & _
" (?:" & @CRLF & _
" [ ]{0,3}" & @CRLF & _
" (?<tr_start_mark>[\|\:]+)?" & @CRLF & _
" (?<tr_col_content>.+?)" & @CRLF & _
" (?:" & @CRLF & _
" \|{1,2}" & @CRLF & _
" |" & @CRLF & _
" (?:" & @CRLF & _
" (?<=\s)\:{1,2}(?=\s+)" & @CRLF & _
" |" & @CRLF & _
" (?<=\s)\:{1,2}(?=\n)" & @CRLF & _
" )" & @CRLF & _
" )?" & @CRLF & _
" \n{1,2}" & @CRLF & _
" )+" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
")" & @CRLF & _
""
Local $sString = "| | Grouping ||" & @CRLF & _
"+---------------+---------------------------------+" & @CRLF & _
"| First Header | Second Header | Third Header |" & @CRLF & _
"+---------------+-----------------+---------------+" & @CRLF & _
"| Content | *Long Cell* ||" & @CRLF & _
": continued : ::" & @CRLF & _
": content : ::" & @CRLF & _
"| Content | **Cell** | Cell |" & @CRLF & _
": continued : : :" & @CRLF & _
": content : : :" & @CRLF & _
"" & @CRLF & _
"| New section | More | Data |" & @CRLF & _
"| And more | And more ||" & @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