TCL regsub一次使用多个特殊字符

TCL regsub一次使用多个特殊字符,tcl,regsub,Tcl,Regsub,有没有办法将转义“\”添加到具有多个特殊字符的字符串中 输入示例:a/b[1]/c/d{3} 期望的结果:a\/b\[1\]\/c\/d\{3\} 我已经在多个regsub中完成了,一次一个特殊字符。但是有没有一种方法可以一次性完成呢?我只需将所有非单词字符转义: set input {a/b[1]/c/d{3}} set output [regsub -all {\W} $input {\\&}] puts $output ref:和我只需转义所有非单词字符: set input {

有没有办法将转义“\”添加到具有多个特殊字符的字符串中

输入示例:
a/b[1]/c/d{3}

期望的结果:
a\/b\[1\]\/c\/d\{3\}


我已经在多个regsub中完成了,一次一个特殊字符。但是有没有一种方法可以一次性完成呢?

我只需将所有非单词字符转义:

set input {a/b[1]/c/d{3}}
set output [regsub -all {\W} $input {\\&}]
puts $output

ref:和

我只需转义所有非单词字符:

set input {a/b[1]/c/d{3}}
set output [regsub -all {\W} $input {\\&}]
puts $output

ref:and

通常使用的方法是构建一个重新字符集(
[…]
)并使用它。在某些情况下,您必须小心处理这些字符(其中有些字符是特殊的,尤其是
^
]
-
\
),但这并不太难

regsub -all {[][/{}]} $input {\\&}

但是,如果您可以使用字符类(例如
\W
[^\W]
),那么它会更简单、更易于阅读。大多数需要应用反斜杠的常见情况都适用于这些字符。

通常使用的方法是构建一个重新字符集(
[…]
)并使用它。在某些情况下,您必须小心处理这些字符(其中有些字符是特殊的,尤其是
^
]
-
\
),但这并不太难

regsub -all {[][/{}]} $input {\\&}

但是,如果您可以使用字符类(例如
\W
[^\W]
),那么它会更简单、更易于阅读。大多数需要应用反斜杠的常见情况都适用于这些情况。

该死,论坛编辑吞下了我的反斜杠。我想要的输出应该是a/b[1]/c/d{3}当论坛编辑接受了我的反斜杠时。我想要的输出应该是a/b[1]/c/d{3}