【发布时间】:2015-10-10 04:15:06
【问题描述】:
我正在尝试使用花括号来定义字符串{ } 而不是双引号" ",这样我就不必转义多个字符(例如$、[、@ 987654325@)。
但是,当我的字符串需要在其中包含一个 { 时,我遇到了一些问题。
我知道我可以通过简单地使用双引号字符串并转义 { 来实现这一点,但是我将如何使用“花括号字符串”来做到这一点?
例如。
我想puts 将以下字符串 'proc foo { } {' 发送到标准输出。
puts "proc foo \{ \} \{" 给了我想要的输出:'proc foo { } {'
但是,puts { proc foo \{ \} \{ } 通过逐字打印反斜杠给我:'proc foo \{ \} \{'。
如果我跳过反斜杠 puts { proc foo { } {,它会抱怨缺少大括号。
另外,如果所需的字符串中有一个匹配的右大括号,它可以正常工作。puts { proc foo { } { } } 给了我预期的:'proc foo { } { }'
在“花括号字符串”中转义单个不匹配的花括号的正确方法是什么?
【问题讨论】:
标签: string tcl curly-braces quoting