set some_string "Name/is/ComplexSTRUCTUre"
конвертировать эту строку,Как заменить определенный символ в строке скриптом tcl?
some_string = "Name/is/ComplexSTR.CTUre"
первый замена т.е. "U"
на "."
set some_string "Name/is/ComplexSTRUCTUre"
конвертировать эту строку,Как заменить определенный символ в строке скриптом tcl?
some_string = "Name/is/ComplexSTR.CTUre"
первый замена т.е. "U"
на "."
Попробуйте это,
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
Использование regsub
является излишеством для простых строк. Если вы просто хотите, чтобы заменить один набор подстрок с другой, string map
ваш друг:
set s "Name/is/ComplexSTRUCTUre"
set s [string map {U .} $s]
Это, однако, заменит все нас с точками - в названии вашего вопроса в наводит на мысль.
Если, однако, вы хотите только первый U заменен - как текст вашего вопроса подразумевает, то второй вариант AxT_8041 является наиболее подходящим.
С помощью 'regsub' мы также можем заменить все' u' точками, используя опцию '-all' ... –
' string map' не позволяет пользователю изменять только первое вхождение. он изменяет каждое появление 'U' с точкой, которая не является необходимостью OP. Тем не менее, если вы хотите изменить все вхождения, то строка 'string map 'является приятной и приятной опцией –