在 tcl 中,由双引号 ( ) 分组的字符串""
在求值时会进行替换。如您所知,tcl 理解以下替换:
$
变量替换:任何以符号开头的单词都被替换为它的值。
- 命令替代:
[
和之间的任何单词组]
都被视为语句,第一个单词称为命令(函数)。
- 转义替换:任何反斜杠 (
\
) 都被视为转义序列并进行相应替换。
因此,下面的代码:
regexp "hello\[^\\n]*06" $str
相当于:
regexp {hello[^\n]*06} $str
所以它试图匹配包含单词“hello”和“06”的字符串,它们之间没有任何换行符。