2016-05-02 2 views

ответ

4

Попробуйте это,

set replaced_string [regsub "U" $some_string "."] 
puts $replaced_string 

Другой вариант,

set pos [string first "U" $some_string] 
set replaced_string [string replace $some_string $pos $pos "."] 
puts $replaced_string 

Здесь ваша "Name/is" часть не должна содержать каких-либо "U"

Более подробную информацию можно найти здесь tcl string replacement

1

Использование regsub является излишеством для простых строк. Если вы просто хотите, чтобы заменить один набор подстрок с другой, string map ваш друг:

set s "Name/is/ComplexSTRUCTUre" 

set s [string map {U .} $s] 

Это, однако, заменит все нас с точками - в названии вашего вопроса в наводит на мысль.

Если, однако, вы хотите только первый U заменен - ​​как текст вашего вопроса подразумевает, то второй вариант AxT_8041 является наиболее подходящим.

+0

С помощью 'regsub' мы также можем заменить все' u' точками, используя опцию '-all' ... –

+1

' string map' не позволяет пользователю изменять только первое вхождение. он изменяет каждое появление 'U' с точкой, которая не является необходимостью OP. Тем не менее, если вы хотите изменить все вхождения, то строка 'string map 'является приятной и приятной опцией –

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