1

文字列にエスケープ文字を自動的に追加する Tcl 関数はありますか?

たとえば、正規表現があります

"[xy]"

関数を呼び出した後、取得します

"\[xy]"

もう一度呼ばれた後、私は得る

"\\\[xy]"

スクリプト言語でそのような機能があったと記憶していますが、どの言語だったか思い出せません。

4

1 に答える 1

2

「必要」なエスケープ文字を追加する通常の方法は、次を使用することですlist(%は私の Tcl プロンプトです)。

% set s {[xy]}
[xy]
% set s [list $s]
{[xy]}
% set s [list $s]
{{[xy]}}

コマンドは、可能であればそのlistままにしておくことを好み、それを回避できる場合は中括弧で囲み、それ以外の場合はバックスラッシュを使用します (バックスラッシュは実際には判読できないため)。

バックスラッシュが本当に必要な場合、string mapまたはregsub必要なことを行う場合。例えば:

set s [regsub -all {\W} $s {\\&}]
于 2012-06-21T09:37:33.453 に答える