我对 TCL 中的字符串有疑问:
HANDLE_NAME "/group1/team1/RON"
proc HANDLE_NAME {playerName} {
#do something here
}
我们将字符串“/group1/team1/RON”传递给proc,但是在HANDLE_NAME内部的某个地方,我们只需要最后一部分“RON”,如何操作输入字符串并获取输入的最后一部分(只有RON)并将其设置为变量?
谁能帮忙?
proc HANDLE_NAME {playerName} {
set lastPart [lindex [split $playerName "/"] end]
# ...
}
并添加第四个答案,如果字符串实际上是文件的路径,请使用file
:
set filename [file tail $playerName]
使用字符串 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]
要添加第三个答案,您也可以regexp
在字符串末尾使用锚定。
regexp {/([^/]+)$} $playerName -> lastPart
但是如果您使用的字符串类似于文件路径,那么 acheong87 的 lindex/split 解决方案肯定是更自然的方式。