如何用 Tcl 中的另一个数字替换字符串的数字部分?

How do I replace a numeric part of a string by another number in Tcl?

我有一个格式类似于 1005-abcd 的字符串,我想用另一个数字替换该字符串的数字部分,使其类似于 1008-abcd。 我可以通过使用以下 -

string map {1005 1008} "1005-abcd"

但我有变量形式的这些数字。例如,$source1005$new1008。当我像这样使用相同的命令时 -

string map {$source $new} "1005-abcd"

大括号防止替换变量。使用另一种方式给出列表并启用替换。一个选项:

string map "$source $new" "1005-abcd"

另一个(更好的)选项:

string map [list $source $new] "1005-abcd"