#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?<=\bimport)(\s*(?:[a-z0-9A-Z]+(\s)+)*)((([a-zA-Z0-9]+\.)+)[a-zA-Z0-9]*\*?);"
Local $sString = "/*" & @CRLF & _
"* Copyright 2009 Brian Pellin." & @CRLF & _
"*" & @CRLF & _
"* This file is part of KeePassDroid." & @CRLF & _
"*" & @CRLF & _
"* KeePassDroid is free software: you can redistribute it and/or modify" & @CRLF & _
"* it under the terms of the GNU General Public License as published by" & @CRLF & _
"* the Free Software Foundation, either version 2 of the License, or" & @CRLF & _
"* (at your option) any later version." & @CRLF & _
"*" & @CRLF & _
"* KeePassDroid is distributed in the hope that it will be useful," & @CRLF & _
"* but WITHOUT ANY WARRANTY; without even the implied warranty of" & @CRLF & _
"* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" & @CRLF & _
"* GNU General Public License for more details." & @CRLF & _
"*" & @CRLF & _
"* You should have received a copy of the GNU General Public License" & @CRLF & _
"* along with KeePassDroid. If not, see <http://www.gnu.org/licenses/>." & @CRLF & _
"*" & @CRLF & _
"*/" & @CRLF & _
"package com.keepassdroid.tests.crypto;" & @CRLF & _
"" & @CRLF & _
"import " & @CRLF & _
"static " & @CRLF & _
"test " & @CRLF & _
"test2 " & @CRLF & _
"org.junit.Assert.assertArrayEquals.*;" & @CRLF & _
"" & @CRLF & _
"import " & @CRLF & _
"java.io.IOException;" & @CRLF & _
"import java.util.Random;" & @CRLF & _
"" & @CRLF & _
"import junit.framework.TestCase;" & @CRLF & _
"" & @CRLF & _
"import com.keepassdroid.crypto.finalkey.AndroidFinalKey;" & @CRLF & _
"import com.keepassdroid.crypto.finalkey.NativeFinalKey;" & @CRLF & _
"" & @CRLF & _
"public class FinalKeyTest extends TestCase {" & @CRLF & _
" private Random mRand;" & @CRLF & _
" " & @CRLF & _
" @Override" & @CRLF & _
" protected void setUp() throws Exception {" & @CRLF & _
" super.setUp();" & @CRLF & _
" " & @CRLF & _
" mRand = new Random();" & @CRLF & _
" }" & @CRLF & _
" " & @CRLF & _
" public void testNativeAndroid() throws IOException {" & @CRLF & _
" // Test both an old and an even number to test my flip variable" & @CRLF & _
" testNativeFinalKey(5);" & @CRLF & _
" testNativeFinalKey(6);" & @CRLF & _
" }" & @CRLF & _
" " & @CRLF & _
" private void testNativeFinalKey(int rounds) throws IOException {" & @CRLF & _
" byte[] seed = new byte[32];" & @CRLF & _
" byte[] key = new byte[32];" & @CRLF & _
" byte[] nativeKey;" & @CRLF & _
" byte[] androidKey;" & @CRLF & _
" " & @CRLF & _
" mRand.nextBytes(seed);" & @CRLF & _
" mRand.nextBytes(key);" & @CRLF & _
" " & @CRLF & _
" AndroidFinalKey aKey = new AndroidFinalKey();" & @CRLF & _
" androidKey = aKey.transformMasterKey(seed, key, rounds);" & @CRLF & _
" " & @CRLF & _
" NativeFinalKey nKey = new NativeFinalKey();" & @CRLF & _
" nativeKey = nKey.transformMasterKey(seed, key, rounds);" & @CRLF & _
" " & @CRLF & _
" assertArrayEquals("Does not match", androidKey, nativeKey);" & @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