regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
Kann jemand Bedeutung dieser drei Aussagen erklären? Sie sind drei verschiedene Aussagen.Erklären Regsub-Aufrufe
regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
Kann jemand Bedeutung dieser drei Aussagen erklären? Sie sind drei verschiedene Aussagen.Erklären Regsub-Aufrufe
regsub -all "\\\\033" $cmd "\033" cmd
Diese alle Instanzen eines umgekehrten Schrägstrich durch 033
mit dem ASCII-ESC Zeichen folgt ersetzt. Es liest die zu verarbeitende Zeichenfolge aus der cmd
-Variablen und schreibt sie zurück in diese Variable.
[regsub -all "\\\\c" $cmd "" cmd]
Diese alle Instanzen eines umgekehrten Schrägstrich durch c
mit dem leeren String (es effektiv zu löschen), gefolgt ersetzt. Es aktualisiert die Variable cmd
. Es ersetzt in seinem aufrufenden Kontext die Anzahl der durchgeführten Substitutionen.
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
Das hier ist ein wenig komplexer. Für einen bestimmten numerischen Index, der in der Variablen i
gespeichert ist, ersetzt er alle Instanzen eines umgekehrten Schrägstrichs gefolgt vom Index durch das i
'te Element (zählt von 0) der Liste in exp_out
. Es aktualisiert die Variable cmd
.
In diesen regulären Ausdrücken gibt es vier Backslashes, weil sie in _twice_, einmal für Tcl und einmal für die RE-Engine selbst in Anführungszeichen gesetzt werden. –
Dies ersetzt alle Instanzen eines umgekehrten Schrägstrichs gefolgt von 033 durch das ASCII-ESC-Zeichen. Er liest die zu verarbeitende Zeichenfolge aus der cmd-Variablen und schreibt sie zurück in diese Variable. Kannst du das bitte klären? Ich habe keine 033 in meinem cmd – user6569320
expect_out ($ j, string), Können Sie darüber klären? Wie viele zuvor übereinstimmende Ausgänge werden gespeichert? – user6569320
Siehe Handbuch der [Tcl-Syntax] (http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm) und des [regsub-Befehls] (http://www.tcl.tk/) man/tcl8.5/TclCmd/regsub.htm). – pynexj