删除 TCL 中某个字符之前的所有内容

Removing everything before a certain character in TCL

输入字符串:4567-ABC

我想删除字符串中“-”之前的所有内容,以便输出为 ABC。

输出:ABC

如果您想避免使用正则表达式:

set string 4567-ABC

set output [lindex [split $string "-"] 1]

split命令接受一个字符串和拆分字符作为参数,returns一个列表。

string last 在这里很有用:

set string 4567-ABC
set idx [string last "-" $string]
set wanted [string range $string $idx+1 end]

或者没有中间变量

set wanted [string range $string [string last "-" $string]+1 end]

如果原始字符串不包含任何连字符,这甚至有效。