在TCL中可以使用 stringreplace命令进行字符串替换。它接受一个字符串作为参数,以及要删除的字符序列的开头和结尾索引,还可选地接受一个字符串参数作为替换用字符串。例如:
string replace "San Diego,California" 4 8 "Francisco"
san Francisco,California
string replace "parsley, sage,rosemary, and thyme" 0 8
sage, rosemary, and thyme
string map命令根据字典把字符串中的相应文本替换为对应的值。这可以用于模板功能。其基本语法如下
string map dictionary string
string map命令将string中出现的所有dictionary关键字置换为相应的值,返回置换后的字符串。置换是按顺序进行的,列表中先出现的关键字先处理。只对字符串迭代一次,所以前面进行的置换不会影响接下来的匹配查找,例如:
set entities {
& &
' '
> >
< <
\" "
}
string map $entities {if (index>0 &&nbAtts==0)}
if (index > 0 && nbAtts==0)
使用-nocase选项,就不区分关键字的大小写,例如:
string map –nocase \
{RESOURCE "Ms. Ripley"CORPORATION "Weyland-Yutani"} \
"Dear ResouRcE, welcome to your firstday at corporation"
Dear Ms. Ripley, welcome to your first dayat Weyland-Yutani
在TCL中通过正则表达式还可以进行更复杂的替换操作。