2015-09-15 3 views
0

У меня есть строка в формате, подобном 1005-abcd, и я хочу заменить цифровую часть этой строки на другой номер и сделать ее как 1008-abcd. я могу добиться этого с помощью следующих -Как заменить числовую часть строки на другое число в Tcl?

string map {1005 1008} "1005-abcd" 

Но у меня есть эти цифры в виде переменных. Например, $source - 1005 и $new - 1008. Когда я использую ту же команду, как это -

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

ответ

2

Брекеты предотвращают замещение переменных. Используйте другой способ, чтобы дать список и включить подстановку. Один из вариантов:

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

Другой (лучше) вариант:

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

Использование 'list' рекомендуется; он поступает правильно, когда вы используете подстроку с пробелом (или другим специальным символом). –

Смежные вопросы