#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(above|below|title|data[0-9]*|header[0-9]*|caption|above|label[0-9]*) *= +([^{}|\n]+)[^| \n]"
Local $sString = "{{Infobox" & @CRLF & _
" |name = {{subst:PAGENAME}}" & @CRLF & _
" |bodystyle = " & @CRLF & _
"" & @CRLF & _
" |titlestyle = " & @CRLF & _
" |abovestyle = background:#cfc;" & @CRLF & _
" |subheaderstyle =" & @CRLF & _
" |title = Test Infobox" & @CRLF & _
" |above = Above text" & @CRLF & _
" |subheader = Subheader above image" & @CRLF & _
" |subheader2 = Second subheader" & @CRLF & _
"" & @CRLF & _
" |imagestyle = " & @CRLF & _
" |captionstyle = " & @CRLF & _
" | image = [[File:example.png|200px|alt=Example alt text]]" & @CRLF & _
" |caption = Caption displayed below example.png" & @CRLF & _
"" & @CRLF & _
" |headerstyle = background:#ccf;" & @CRLF & _
" |labelstyle = background:#ddf;" & @CRLF & _
" |datastyle = " & @CRLF & _
"" & @CRLF & _
" |header1 = Header defined alone" & @CRLF & _
" | label1 = " & @CRLF & _
" | data1 = " & @CRLF & _
" |header2 = " & @CRLF & _
" | label2 = Label defined alone does not display (needs data, or is suppressed)" & @CRLF & _
" | data2 = " & @CRLF & _
" |header3 =" & @CRLF & _
" | label3 = " & @CRLF & _
" | data3 = Data defined alone" & @CRLF & _
" |header4 = All three defined (header, label, data, all with same number)" & @CRLF & _
" | label4 = does not display (same number as a header)" & @CRLF & _
" | data4 = does not display (same number as a header)" & @CRLF & _
" |header5 =" & @CRLF & _
" | label5 = Label and data defined (label)" & @CRLF & _
" | data5 = Label and data defined (data)" & @CRLF & _
"" & @CRLF & _
" |belowstyle = background:#ddf;" & @CRLF & _
" |below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" | title = Top level title" & @CRLF & _
" | header1 = {{Infobox | decat = yes | child = yes" & @CRLF & _
" | title = First subsection" & @CRLF & _
" | label1= Label 1.1" & @CRLF & _
" | data1 = Data 1.1" & @CRLF & _
" }}" & @CRLF & _
" | header2 = {{Infobox | decat = yes | child = yes" & @CRLF & _
" | title = Second subsection" & @CRLF & _
" | label1= Label 2.1" & @CRLF & _
" | data1 = Data 2.1" & @CRLF & _
" }}" & @CRLF & _
" | belowstyle = " & @CRLF & _
" | below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" |name = {{subst:PAGENAME}}" & @CRLF & _
" |bodystyle = width:20em" & @CRLF & _
"" & @CRLF & _
" |titlestyle = " & @CRLF & _
" |title = Test Infobox" & @CRLF & _
"" & @CRLF & _
" |headerstyle = " & @CRLF & _
" |labelstyle = width:33%" & @CRLF & _
" |datastyle = " & @CRLF & _
"" & @CRLF & _
" |header1 = " & @CRLF & _
" | label1 = Label 1" & @CRLF & _
" | data1 = Data 1" & @CRLF & _
" |header2 = " & @CRLF & _
" | label2 = Label 2" & @CRLF & _
" | data2 = Data 2" & @CRLF & _
" |header3 = " & @CRLF & _
" | label3 = Label 3" & @CRLF & _
" | data3 = Data 3" & @CRLF & _
" |header4 = Header 4" & @CRLF & _
" | label4 = " & @CRLF & _
" | data4 = " & @CRLF & _
" |header5 = " & @CRLF & _
" | label5 = Label 5" & @CRLF & _
" | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _
"" & @CRLF & _
" |belowstyle = " & @CRLF & _
" |below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" |name = {{subst:PAGENAME}}" & @CRLF & _
" |bodystyle = width:20em" & @CRLF & _
"" & @CRLF & _
" |titlestyle = " & @CRLF & _
" |title = Test Infobox" & @CRLF & _
"" & @CRLF & _
" |headerstyle = " & @CRLF & _
" |labelstyle = width:33%" & @CRLF & _
" |datastyle = " & @CRLF & _
"" & @CRLF & _
" |header1 = " & @CRLF & _
" | label1 = Label 1" & @CRLF & _
" | data1 = Data 1" & @CRLF & _
" |header2 = " & @CRLF & _
" | label2 = Label 2" & @CRLF & _
" | data2 = Data 2" & @CRLF & _
" |header3 = " & @CRLF & _
" | label3 = Label 3" & @CRLF & _
" | data3 = Data 3" & @CRLF & _
" |header4 = Header 4" & @CRLF & _
" | label4 = " & @CRLF & _
" | data4 = " & @CRLF & _
" |header5 = " & @CRLF & _
" | label5 = Label 5" & @CRLF & _
" | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _
"" & @CRLF & _
" |belowstyle = " & @CRLF & _
" |below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" |name = {{subst:PAGENAME}}" & @CRLF & _
" |bodystyle = width:20em" & @CRLF & _
"" & @CRLF & _
" |titlestyle = " & @CRLF & _
" |title = Test Infobox" & @CRLF & _
"" & @CRLF & _
" |headerstyle = " & @CRLF & _
" |labelstyle = width:33%" & @CRLF & _
" |datastyle = " & @CRLF & _
"" & @CRLF & _
" |header1 = " & @CRLF & _
" | label1 = Label 1" & @CRLF & _
" | data1 = Data 1" & @CRLF & _
" |header2 = " & @CRLF & _
" | label2 = Label 2" & @CRLF & _
" | data2 = Data 2" & @CRLF & _
" |header3 = " & @CRLF & _
" | label3 = Label 3" & @CRLF & _
" | data3 = Data 3" & @CRLF & _
" |header4 = Header 4" & @CRLF & _
" | label4 = " & @CRLF & _
" | data4 = " & @CRLF & _
" |header5 = " & @CRLF & _
" | label5 = Label 5" & @CRLF & _
" | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _
"" & @CRLF & _
" |belowstyle = " & @CRLF & _
" |below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" |name = {{subst:PAGENAME}}" & @CRLF & _
" |bodystyle = width:20em" & @CRLF & _
"" & @CRLF & _
" |titlestyle = " & @CRLF & _
" |title = Test Infobox" & @CRLF & _
"" & @CRLF & _
" |headerstyle = " & @CRLF & _
" |labelstyle = width:33%" & @CRLF & _
" |datastyle = " & @CRLF & _
"" & @CRLF & _
" |header1 = " & @CRLF & _
" | label1 = Label 1" & @CRLF & _
" | data1 = Data 1" & @CRLF & _
" |header2 = " & @CRLF & _
" | label2 = Label 2" & @CRLF & _
" | data2 = Data 2" & @CRLF & _
" |header3 = " & @CRLF & _
" | label3 = Label 3" & @CRLF & _
" | data3 = Data 3" & @CRLF & _
" |header4 = Header 4" & @CRLF & _
" | label4 = " & @CRLF & _
" | data4 = " & @CRLF & _
" |header5 = " & @CRLF & _
" | label5 = Label 5" & @CRLF & _
" | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _
"" & @CRLF & _
" |belowstyle = " & @CRLF & _
" |below = Below text" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" | headerstyle = background-color:#eee;" & @CRLF & _
" | labelstyle = background-color:#eee;" & @CRLF & _
" | header1 = Main 1" & @CRLF & _
" | header2 = Main 2" & @CRLF & _
" | data3 = {{Infobox | subbox = yes" & @CRLF & _
" | headerstyle = background-color:#ccc;" & @CRLF & _
" | labelstyle = background-color:#ddd;" & @CRLF & _
" | header1 = Sub 3-1" & @CRLF & _
" | header2 = Sub 3-2" & @CRLF & _
" | label3 = Label 3-3 | data3 = Data 3-3" & @CRLF & _
" }}" & @CRLF & _
" | data4 = {{Infobox | subbox = yes" & @CRLF & _
" | labelstyle = background-color:#ccc;" & @CRLF & _
" | label1 = Label 4-1 | data1 = Data 4-1" & @CRLF & _
" }}" & @CRLF & _
" | label5 = Label 5 | data5 = Data 5" & @CRLF & _
" | header6 = Main 6" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"{{Infobox" & @CRLF & _
" | headerstyle = background-color:#eee;" & @CRLF & _
" | labelstyle = background-color:#eee;" & @CRLF & _
" | header1 = Main 1" & @CRLF & _
" | header2 = Main 2" & @CRLF & _
" | data3 = {{Infobox | subbox = yes" & @CRLF & _
" | headerstyle = background-color:#ccc;" & @CRLF & _
" | labelstyle = background-color:#ddd;" & @CRLF & _
" | header1 = Sub 3-1" & @CRLF & _
" | header2 = Sub 3-2" & @CRLF & _
" | label3 = Label 3-3 | data3 = Data 3-3" & @CRLF & _
" }}" & @CRLF & _
" | data4 = {{Infobox | subbox = yes" & @CRLF & _
" | labelstyle = background-color:#ccc;" & @CRLF & _
" | label1 = Label 4-1 | data1 = Data 4-1" & @CRLF & _
" }}" & @CRLF & _
" | label5 = Label 5 | data5 = Data 5" & @CRLF & _
" | header6 = Main 6" & @CRLF & _
"}}" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @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