是否有任何Tcl函数可以自动将转义字符添加到字符串中?
例如,我有一个正则表达式
"[xy]"
在我调用该函数后,我得到了
"\[xy]"
再次被召唤后,我得到了
"\\\[xy]"
我记得有一些脚本语言的功能,但我不记得它是哪种语言。
答案 0 :(得分: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 {\\&}]