是否有任何Tcl函数可以自动添加转义字符?

时间:2012-06-21 09:18:24

标签: tcl expect

是否有任何Tcl函数可以自动将转义字符添加到字符串中?

例如,我有一个正则表达式

"[xy]"

在我调用该函数后,我得到了

"\[xy]"

再次被召唤后,我得到了

"\\\[xy]"

我记得有一些脚本语言的功能,但我不记得它是哪种语言。

1 个答案:

答案 0 :(得分:2)

添加“必要”转义字符的常用方法是使用list%是我的Tcl提示符):

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

list命令如果可以的话,更喜欢单独留下,如果它可以躲开,则用括号括起来,否则采用反斜杠(因为反斜杠实际上是不可读的)。

如果你真的需要反斜杠,string mapregsub会做你需要的。例如:

set s [regsub -all {\W} $s {\\&}]