Wow, wahnsinn! Dein Code arbeitet bisher bei kurzen Tests hervorragend. Morgen werde ich ihn auf Herz und Nieren prüfen. Wenn er hält, was er verspricht, bist du mein Held der Woche!
Natürlich will ich jetzt Nachschlag. Hast du vielleicht ein Pattern, das alle Vorkommen eines bestimmten Zeichens (z. B. "=") ersetzt, wenn es NICHT innerhalb von Anführungszeichen steht. Es soll ein Leerzeichen vor und hinter jedem Gleichheitszeichen eingefügt werden, das nicht in einem String-Literal steht. Beispiel:
Dieser Text:
Func Foo($a, $b, $sPassWort="$geheim5=_a3xyz7!?", $sPW_2='$noch=geheimer_91')
soll hinterher so aussehen:
Func Foo($a, $b, $sPassWort = "$geheim5=_a3xyz7!?", $sPW_2 = '$noch=geheimer_91')
Test-Code:
Local $sTestStr = 'Func Foo($a, $b, $sPassWort="$geheim5=_a3xyz7!?", ' & "$sPW_2='$noch=geheimer_91')"
$sTestStr = StringRegExpReplace($sTestStr, 'Zauberpattern', ' = ')
MsgBox(0, "", $sTestStr)
Derzeit mache ich die Erkennung an einer vorangehenden Variable fest, aber das trifft leider auch "=" Zeichen in Quotes.
$sAllLines = StringRegExpReplace($sAllLines, '(\$\w+)\h*=\h*(\S)', '\1 = \2')
Bernd.
Edit: Musashi
Sorry, hatte zu viel im Kopf. Der Bereich mit Zeilenkommentaren wird mit einem anderen Pattern ausgefiltert, ist also kein Problem. Danke fürs Testen!