#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(--[\w-]+:[\s]*[^;\n}]+)"
Local $sString = "these should match" & @CRLF & _
":root {" & @CRLF & _
" --externalcolor: red;" & @CRLF & _
" --samename: orange;" & @CRLF & _
" --samename: #0f0;" & @CRLF & _
" --foo: green;" & @CRLF & _
" --FOO: #0f0;" & @CRLF & _
" --halfsuccess: orange;" & @CRLF & _
"/* multiple on one line */" & @CRLF & _
" --success: green;--success2: #0f0;" & @CRLF & _
"/* forget the ; */" & @CRLF & _
" --success: green" & @CRLF & _
" --success2: #0f0" & @CRLF & _
"" & @CRLF & _
" --fred: var(--foo);" & @CRLF & _
" --barney: var(--foo, test)" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
":root {" & @CRLF & _
" /* name options */" & @CRLF & _
" --4name: startsWithNumber;" & @CRLF & _
" --name: startsWithLetter;" & @CRLF & _
" /* value options */" & @CRLF & _
" --startWithLetter: red;" & @CRLF & _
" --startWithPound: #0f0;" & @CRLF & _
" --startWithNumber: 20px;" & @CRLF & _
" --startWithQuoteDouble: "test";" & @CRLF & _
" --startWithQuoteSingle: 'test';" & @CRLF & _
" --containsUrl: url("http://test.com/foo?a=b&c=d");" & @CRLF & _
" --containsPunctuation: -_,.;" & @CRLF & _
" --containsSpace: "test space";" & @CRLF & _
"" & @CRLF & _
" /* misc conditions*/" & @CRLF & _
" --multipleOnOneLine1: green; --multipleOnOneLine2: #0f0;" & @CRLF & _
" --noSpaceAfterColon:test;" & @CRLF & _
" --multiSpaceAfterColon: test;" & @CRLF & _
" --dash-in-name: test;" & @CRLF & _
" --underscore_in_name: test;" & @CRLF & _
"" & @CRLF & _
"}" & @CRLF & _
" /* minified css */" & @CRLF & _
" :root{--almost-black:#222;}html{color:var(--almost-black)}body{color:var(--almost-black);" & @CRLF & _
"" & @CRLF & _
"don't match this (the double dash in the comments" & @CRLF & _
"/* ----------------------------------------------------- */" & @CRLF & _
"@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap");" & @CRLF & _
"" & @CRLF & _
"on one line" & @CRLF & _
"/* ----------------------------------------------------- */ @import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap");"
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