在TCL中如何操作字符串?

时间:2012-06-21 17:51:10

标签: string tcl

我对TCL中的字符串有疑问:

HANDLE_NAME "/group1/team1/RON"

proc HANDLE_NAME {playerName} {
    #do something here
}

我们将字符串“/ group1 / team1 / RON”传递给proc,但是在HANDLE_NAME内部的某个地方,我们只需要最后一部分是“RON”,如何操作输入字符串并获取最后一部分输入(仅RON)并将其设置为变量?

任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

proc HANDLE_NAME {playerName} {
    set lastPart [lindex [split $playerName "/"] end]
    # ...
}

答案 1 :(得分:2)

要添加第四个答案,如果字符串实际上是文件的路径,请使用file

set filename [file tail $playerName]

答案 2 :(得分:1)

使用string last查找最后一个正斜杠。然后使用字符串范围来获取之后的文本。 http://tcl.tk/man/tcl8.5/TclCmd/string.htm

set mystring "/group1/team1/RON"
set slash_pos [string last "/" $mystring]
set ron_start_pos [incr slash_pos]
set ron [string range $mystring $ron_start_pos end]

答案 3 :(得分:1)

要添加第三个答案,您也可以使用锚定在字符串末尾的regexp

regexp {/([^/]+)$} $playerName -> lastPart

但是如果你使用的字符串就像文件路径一样,acheong87的lindex / split解决方案肯定是更自然的方式。