2012-06-21 28 views
1

是否有任何Tcl函數可以將轉義字符自動添加到字符串中?是否有任何Tcl函數自動添加轉義字符?

例如,我有一個正則表達式

"[xy]" 

我調用該函數後,我得到

"\[xy]" 

再次被調用後,我得到

"\\\[xy]" 

我記得有一些腳本語言的功能,但我不記得它是哪種語言。

回答

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 {\\&}] 
+1

「list」命令構造了也是「無替代」命令的列表(即,從讀取變量或運行命令中沒有意外)。 –

+0

他們都爲我工作。第二個爲每個單詞添加'\',看起來有點奇怪。 – Yorkwar

相關問題