Ich versteh das so:
Du deklarierst
Match1 in der Funktion als
lokal - jetzt kann in der Funktion eine andere Match1-Variable existieren als außerhalb, während fortan alle anderen Variablen in der Funktion als global angesehen werden (u. a.
Heuhaufen, aber auch
Match). Jetzt steht aber auch in den
RegExMatch-Doks (siehe Abschnitt
OutputVar):
Das heisst, da nun
Match global ist, wird das durch
RegExMatch erzeugte Match1 in der Pseudo-Array die globale Version von Match1, während Match1 in
MsgBox,, innerhalb Muster(), % "Match1: " Match1 weiterhin die lokal definierte Version der Variable ist - immer noch leer.
Also kein Bug, würd ich sagen, sondern dok-konformes Verhalten (ergo Feature
).
Setze das lokale Match1 zur Verdeutlichung:
Code: Select all
Heuhaufen := "abcXYZ123"
Muster()
MsgBox,, außerhalb Muster(), % "Match1: " Match1
Return
Muster()
{
Local Match1
RegExMatch(Heuhaufen, "abc(.*)123", Match)
Match1 := "lokal"
MsgBox,, innerhalb Muster(), % "Match1: " Match1
}