regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
誰かがこれら3つのステートメントの意味を説明できますか? 3つの異なるステートメントです。regsubの呼び出しを説明してください
regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
誰かがこれら3つのステートメントの意味を説明できますか? 3つの異なるステートメントです。regsubの呼び出しを説明してください
regsub -all "\\\\033" $cmd "\033" cmd
これはASCII ESC文字で033
が続くバックスラッシュのすべてのインスタンスを置き換えます。処理する文字列をcmd
変数から読み取り、その変数に書き戻します。
[regsub -all "\\\\c" $cmd "" cmd]
これは、空の文字列(効果的に削除)してc
バックスラッシュのすべてのインスタンスを置換します。変数cmd
を更新します。これは、実行された置換の数をその呼び出しコンテキストに代入します。
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
この1つは少し複雑です。 i
変数に格納されている特定の数値インデックスの場合、バックスラッシュのすべてのインスタンスの後に、exp_out
のリストのi
番目の要素(0から数えて)のインデックスが置き換えられます。変数cmd
を更新します。
これらの正規表現にはバックスラッシュが4つあります。これは、Tclの場合は1回、REエンジンの場合は1回です。 –
これは、バックスラッシュのすべてのインスタンスに続いて033がASCII ESC文字で置き換えられます。 cmd変数から処理する文字列を読み取り、その変数に書き戻します。あなたはこれを明確にすることはできますか?私のcmdに033がありません – user6569320
expect_out($ j、string)、これについてはっきりしていますか?以前に一致した出力はいくつまで保存されますか? – user6569320
[Tcl構文](http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm)および[regsubコマンド](http://www.tcl.tk/)のマニュアルを参照してください。 man/tcl8.5/TclCmd/regsub.htm)。 – pynexj