String 用于(到)的TCL字符串映射\(

String 用于(到)的TCL字符串映射\(,string,replace,tcl,String,Replace,Tcl,如何做到这一点 puts [string map { ( ) "\(" "\)"} (3.8.001)] o\p我得到$tclsh main.tcl (3.8.001) 我在等你 \(3.8.001\) 请帮助我执行此操作您应该使用字符串映射,如下所示: puts [string map { ( ) "\(" "\)"} (3.8.001)] puts [string map { ( "\\(" ) "\\)"} (3.8.001)] 反斜杠必须使用两次,才能在Tcl中的双引号内使

如何做到这一点

puts [string map { ( ) "\(" "\)"} (3.8.001)] 
o\p我得到$tclsh main.tcl

(3.8.001)
我在等你

\(3.8.001\)

请帮助我执行此操作

您应该使用
字符串映射
,如下所示:

puts [string map { ( ) "\(" "\)"} (3.8.001)] 
puts [string map { ( "\\(" ) "\\)"} (3.8.001)]

反斜杠必须使用两次,才能在Tcl中的双引号内使用一个反斜杠。

您应该使用
字符串映射,如下所示:

puts [string map { ( "\\(" ) "\\)"} (3.8.001)]

反斜杠必须使用两次,以便在Tcl中的双引号中使用一个反斜杠。

每当我对如何准确地编写包含反斜杠的复杂
字符串映射感到困惑时,我会尝试使用
list
构建映射列表。然后,我可能会使用它生成的文本,而不是让脚本继续n实际的
list
命令调用,但这纯粹是对我的优化。(而且是一个非常低的值;如果
list
的所有参数都是文本,字节码编译器会为我这样做。)在特别棘手的情况下,我将使用
lappend
分阶段构建它,但这才是真正令人头痛的地方

此外,映射应该是“
replaceawitha replacebwithb…”
”,您将
“\(“
”)按错误的顺序放置,结果根本不会起作用

set mapping [list "(" "\\(" ")" "\\)"]
# puts "mapping is “$mapping”";  # Yay for unicode quote characters!
puts [string map $mapping (3.8.001)] 

你要找的序列是这样的,多几个大括号,少几个双引号,但我鼓励你自己学习如何解决这个问题

puts [string map {( {\(} ) {\)}} "(3.8.001)"]

每当我对如何准确地编写包含反斜杠的复杂
字符串映射感到困惑时,我就会尝试使用
list
构建映射列表。然后,我可能会使用它生成的文本,而不是让我的脚本包含实际的
list
命令调用,但这纯粹是我的优化。(这是一个非常低的值;如果
列表
的所有参数都是文本,字节码编译器会为我这样做。)在特别棘手的情况下,我将使用
lappend
分阶段构建它,但这才是真正令人头痛的地方

此外,映射应该是“
replaceawitha replacebwithb…”
”,您将
“\(“
”)按错误的顺序放置,结果根本不会起作用

set mapping [list "(" "\\(" ")" "\\)"]
# puts "mapping is “$mapping”";  # Yay for unicode quote characters!
puts [string map $mapping (3.8.001)] 

你要找的序列是这样的,多几个大括号,少几个双引号,但我鼓励你自己学习如何解决这个问题

puts [string map {( {\(} ) {\)}} "(3.8.001)"]

我有一个问题。如何将。替换为新行?@ArunBaskar:
字符串映射{“.”“\n”}(3.8.001)
我有一个问题。如何将。替换为新行?@ArunBaskar:
字符串映射{“.”“\n”}(3.8.001)