String 修剪Tcl字符串异常行为

String 修剪Tcl字符串异常行为,string,indexing,tcl,trim,String,Indexing,Tcl,Trim,我目前在使用TCL时遇到意外行为。 我有一个类似“alternate[a-z]”的字符串,我正在使用下面的命令来获取alternate的索引 set stemp [ string trim $test "alternate \s"] [b-z]的输出是[b-z],表示“备用a”,但我得到“”。为什么?您看到的行为与记录的完全一样。该命令的工作原理是从每一端修剪出现在第二个参数某处的任何连续字符序列。不管第二个参数中的字符串是什么,它只是作为一组字符使用,而且从本质上讲,从未与第一个参数的前导或

我目前在使用TCL时遇到意外行为。 我有一个类似“alternate[a-z]”的字符串,我正在使用下面的命令来获取alternate的索引

set stemp [ string trim $test "alternate \s"]

[b-z]的输出是[b-z],表示“备用a”,但我得到“”。为什么?

您看到的行为与记录的完全一样。该命令的工作原理是从每一端修剪出现在第二个参数某处的任何连续字符序列。不管第二个参数中的字符串是什么,它只是作为一组字符使用,而且从本质上讲,从未与第一个参数的前导或尾随子字符串匹配

例如

可以是您想要的
::textutil::trim
:该命令根据正则表达式进行修剪

package require textutil

::textutil::trim foooofoooofoo foo
# -> oofoooo
::textutil::trim faouofeoiofyo f.o
# -> uofeoio
文件:,包

package require textutil

::textutil::trim foooofoooofoo foo
# -> oofoooo
::textutil::trim faouofeoiofyo f.o
# -> uofeoio