#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^\s+(?P<user>[\w[:print:]]+) [\w\-\.]+ [[:print:]]+ ?\(v[\w\.]+\) \([\w\-\.]+\/\d+ \d+\)\, start \w+ \d+\/\d+ \d+\:\d+(\,\s(?P<licenses>\d+)\s\w+|)(\s+\(linger\:\s\d+\s\/\s\d+\))?$"
Local $sString = "" & @CRLF & _
" userone host01 :78 APS Base (v19.100) (licserver/27010 7401), start Thu 5/14 15:31, 2 licenses" & @CRLF & _
" userone host01 :78 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 7501), start Thu 5/14 15:31, 4 licenses" & @CRLF & _
" userone host01 :75 APS Base (v19.100) (licserver/27010 18901), start Thu 5/14 15:33, 2 licenses" & @CRLF & _
" userone host01 :75 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 19001), start Thu 5/14 15:33, 4 licenses" & @CRLF & _
" userone host01 :76 APS Base (v19.100) (licserver/27010 18702), start Thu 5/14 15:34, 2 licenses" & @CRLF & _
" userone host01 :76 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 17002), start Thu 5/14 15:34, 4 licenses" & @CRLF & _
" userone host01 :77 APS Base (v19.100) (licserver/27010 23302), start Thu 5/14 15:34, 2 licenses" & @CRLF & _
" userone host01 :77 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 23801), start Thu 5/14 15:34, 4 licenses" & @CRLF & _
" userone host01 :60 APS Base (v19.100) (licserver/27010 23901), start Thu 5/14 15:34, 2 licenses" & @CRLF & _
" userone host01 :60 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 24001), start Thu 5/14 15:34, 4 licenses" & @CRLF & _
" userone host01 :68 APS Base (v19.100) (licserver/27010 25501), start Thu 5/14 15:34, 2 licenses" & @CRLF & _
" userone host01 :68 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 25601), start Thu 5/14 15:34, 4 licenses" & @CRLF & _
" userone host01 :58 APS Base (v19.100) (licserver/27010 22803), start Thu 5/14 15:34, 2 licenses" & @CRLF & _
" userone host01 :58 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 27801), start Thu 5/14 15:34, 4 licenses" & @CRLF & _
" useronexr host01 :51 Spectre X Base (v19.100) (licserver/27010 61140), start Sat 5/16 13:41, 3 licenses" & @CRLF & _
" useronexr host01 :52 Spectre X Base (v19.100) (licserver/27010 31125), start Sat 5/16 13:43, 3 licenses" & @CRLF & _
" useronexr host01 :76 Spectre X Base (v19.100) (licserver/27010 53463), start Sat 5/16 13:47, 3 licenses" & @CRLF & _
" useronexr host01 :69 Spectre X Base (v19.100) (licserver/27010 41523), start Sat 5/16 13:47, 3 licenses" & @CRLF & _
" useronexr host01 :51 Spectre X Multi-core (Max. 16 cores) (v19.100) (licserver/27010 46233), start Sat 5/16 14:08, 6 licenses" & @CRLF & _
" useronex host01 :52 Spectre X Multi-core (Max. 16 cores) (v19.100) (licserver/27010 32328), start Sat 5/16 14:10, 6 licenses" & @CRLF & _
" useronex host01 :69 Spectre X Multi-core (Max. 16 cores) (v19.100) (licserver/27010 10953), start Sat 5/16 14:16, 6 licenses" & @CRLF & _
" useronex host02 :76 Spectre X Multi-core (Max. 16 cores) (v19.100) (licserver/27010 32114), start Sat 5/16 14:17, 6 licenses" & @CRLF & _
" useronexr host02 localhost:10 APS Base (v19.100) (licserver/27010 31935), start Sun 5/17 10:18, 2 licenses" & @CRLF & _
" useronexr host02 localhost:10 APS Multi-core (Max. 16 cores) (v19.100) (licserver/27010 6614), start Sun 5/17 10:21, 4 licenses" & @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