#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?m)(?xXmi)" & @CRLF & _
"(?:" & @CRLF & _
" (?# use non-capture for details in debugging)" & @CRLF & _
" (?:" & @CRLF & _
" (?<match>" & @CRLF & _
" (?# If quoted value)" & @CRLF & _
" (?<quot_char>(?<!\\)["'])" & @CRLF & _
" (?# Quoted content)" & @CRLF & _
" (?:" & @CRLF & _
" (?:" & @CRLF & _
" (?# Match as many characters that aren't quotation char)" & @CRLF & _
" (?# or escape char as possible. )" & @CRLF & _
" (?:(?:(?!\k<quot_char>|\\)).+)" & @CRLF & _
" (?:" & @CRLF & _
" (?# Match any/all escape chars that do not have the)" & @CRLF & _
" (?# quotation char following it. )" & @CRLF & _
" (?:(?:\\)*(?!\k<quot_char>))?" & @CRLF & _
" (?# If there is an escape char followed by the quotation)" & @CRLF & _
" (?# quotation char match them. )" & @CRLF & _
" (?:[\\]\k<quot_char>)?" & @CRLF & _
" )*?" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" (?<close_quot>\k<quot_char>)" & @CRLF & _
" |" & @CRLF & _
" (?# if simple token)" & @CRLF & _
" (?<basic>[^ \n]+)+" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" (?<trail_ws>[ ]+)?" & @CRLF & _
")"
Local $sString = "-t1a1" & @CRLF & _
"-t2a1 -t2a2" & @CRLF & _
" -t3a1 -t3a2 " & @CRLF & _
"-t4a1 Test1value -t4a2 test4a2value -t4a3 t4a3value" & @CRLF & _
"-t5a1EscQuot \'t5a1valueESQ\' -t5a2EscQuot \"t5a2valueEDQ\"" & @CRLF & _
"-t6a1 "t6a1value1DQWord1 t6a1value1DQWord1" -t6a2SQuot 't6a2value1SQWord1 t6a2value1SQWord2 t6a2value1SQWord3 '" & @CRLF & _
"-t7a1SQuotEmpty '' -t7a2DQuotEmpty """ & @CRLF & _
""
Local $sSubst = "\n${match}"
Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst)
MsgBox($MB_SYSTEMMODAL, "Result", $sResult)
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