tcl string

tcl string

关于tcl string的用法一直都是一个很重要的知识点。这是对于字符串的一些处理。
下面总结string命令的用法。

‌一、字符串基础操作‌
1‌. 字符串表示‌
Tcl 字符串可用双引号、单引号或花括号包裹,支持多行字符串‌:

set str1 “Hello World” ;# 双引号
set str2 {Hello World} ;# 花括号

2‌. 长度与索引‌

string length:获取字符串长度‌。

set len [string length “abc”] ;# 返回 3

string index:按索引获取字符(索引从0开始)‌。

set char [string index “abc” 1] ;# 返回 “b”

string range:获取指定索引范围的子串‌。

set sub [string range “abcdef” 1 3] ;# 返回 “bcd”

‌二、字符串比较与匹配
1‌. 比较操作‌

string compare:字典序比较字符串(返回-1/0/1)‌
string compare “apple” “banana” ;# 返回 -1

string equal:严格比较字符串是否相同‌
string equal “yes” “YES” ;# 返回 0(区分大小写)
string equal -nocase “yes” “YES” ;# 返回 1(忽略大小写)

2.模式匹配‌

string match:使用 glob 风格模式匹配(支持 、? 等通配符)‌
string match "a
" “apple” ;# 返回 1

‌三、字符串搜索与替换‌
‌子串搜索
string first:查找子串首次出现的位置(未找到返回-1)‌
set pos [string first “lo” “Hello”] ;# 返回 3

string last:查找子串最后一次出现的位置‌
set pos [string last “o” “Hello World”] ;# 返回 7

替换与修改‌

string replace:替换指定索引范围的字符或子串‌
set new [string replace “abcd” 1 2 “x”] ;# 返回 “axd”

string map:按字符映射表替换字符串‌
set new [string map {a 1 b 2} “abc”] ;# 返回 “12c”

‌四、字符串处理工具‌
‌大小写转换‌

string tolower:转全小写‌
string tolower “Hello” ;# 返回 “hello”

string toupper:转全大写‌
string toupper “Hello” ;# 返回 “HELLO”

‌修剪空白或字符‌

string trim:删除首尾指定字符(默认去空格)‌
string trim " text " ;# 返回 “text”
string trim “aabtextbaa” ab ;# 返回 “text”

‌重复生成字符串‌

string repeat:重复字符串指定次数‌
string repeat “a” 3 ;# 返回 “aaa”

‌五、高级功能‌
‌字符类型验证‌

string is:检查字符串是否为特定类型(如数字、字母等)‌

string is digit “123” ;# 返回 1
string is alpha “abc” ;# 返回 1

‌单词边界处理‌

string wordstart 和 string wordend:获取单词的起始/结束索引‌
set str “Tcl is fun”
set start [string wordstart $str 4] ;# 返回 4("is"的起始位置)

附加:

string 子命令速查表‌
‌子命令‌ ‌功能描述‌ ‌语法示例‌ ‌返回值/说明‌
‌string length‌ 获取字符串长度 string length “abc” 3
‌string index‌ 获取指定索引位置的字符(索引从0开始) string index “abc” 1 “b”(索引超出范围时返回空字符串)
‌string range‌ 获取指定索引范围的子串 string range “abcdef” 1 3 “bcd”(包含起始和结束索引)
‌string compare‌ 字典序比较字符串(区分大小写) string compare “apple” “Banana” 1(“apple” > “Banana”,字典序中大写字母优先级低于小写)
‌string equal‌ 严格比较字符串是否相等(可忽略大小写) string equal -nocase “YES” “yes” 1(-nocase 忽略大小写)
‌string match‌ 使用通配符模式匹配(* 匹配任意字符,? 匹配单个字符) string match “a?c” “axc” 1(匹配成功返回 1,失败返回 0)
‌string first‌ 查找子串首次出现的位置 string first “lo” “Hello” 3(未找到返回 -1)
‌string last‌ 查找子串最后一次出现的位置 string last “o” “Hello World” 7(最后一个 o 的位置)
‌string replace‌ 替换指定索引范围的字符或子串 string replace “abcd” 1 2 “xyz” “axyzd”(替换索引1到2的部分)
‌string map‌ 按字符映射表替换字符串 string map {a 1 b 2} “abc” “12c”(替换所有匹配的字符)
‌string tolower‌ 将字符串转为全小写 string tolower “HeLLo” “hello”
‌string toupper‌ 将字符串转为全大写 string toupper “HeLLo” “HELLO”
‌string trim‌ 删除字符串首尾的指定字符(默认删除空格) string trim “##text##” “#” “text”(仅删除首尾的 #)
‌string trimleft‌ 删除字符串开头的指定字符 string trimleft “000123” “0” “123”
‌string trimright‌ 删除字符串末尾的指定字符 string trimright “text**” “*” “text”
‌string repeat‌ 重复字符串指定次数 string repeat “ab” 3 “ababab”
‌string reverse‌ 反转字符串 string reverse “123” “321”
‌string is‌ 检查字符串是否为特定类型(如数字、字母等) string is digit “123”
string is alpha “abc” 1(符合条件返回 1,否则 0)
‌string bytelength‌ 获取字符串占用的字节数(针对多字节编码如UTF-8) string bytelength “你好” 6(UTF-8中每个中文字符占3字节)
‌string wordstart‌ 获取指定位置所在单词的起始索引 string wordstart “Tcl is fun” 4 4(位置4对应单词 is 的起始位置)
‌string wordend‌ 获取指定位置所在单词的结束索引 string wordend “Tcl is fun” 4 6(位置4对应单词 is 的结束位置+1)
‌关键说明‌
‌索引规则‌:

索引从 0 开始,支持负数(如 -1 表示最后一个字符)。
string range 包含起始和结束索引的字符。
‌通配符匹配‌:

string match 使用 glob 风格:* 匹配任意字符,? 匹配单个字符,[a-z] 匹配范围。
‌字符替换‌:

string map 按映射表替换所有匹配项(如 {a 1 b 2} 将 a 替换为 1,b 替换为 2)。
‌多字节编码‌:

string length 返回字符数,string bytelength 返回字节数(如 UTF-8 编码下的差异)。

— END —

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weifexie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值