1

我是 TCL 的新手,需要一个 TCL 方法/实用程序/代码,它可以从字符串中的第一次出现中查找和删除字符串中的所有字符(包括其自身)。

我有一个如下字符串:

Func::set()->method();

在上面的字符串中,我需要找到第一次出现的 '(' 并将其全部删除,然后才能得到结果字符串:

Func::set
4

2 回答 2

3

您可以使用正则表达式来做到这一点:

set the_string [regsub {\(.*} $the_string ""]

或者如果您不熟悉正则表达式,那么您可以使用更传统的方式:

set the_string [
    string range $the_string 0 [
        expr {[string first "(" $the_string]-1}
    ]
]

有关更多信息,请阅读 [ string ]、[ regsub ] 和 [ re_syntax ]的手册页。

于 2012-11-01T05:42:47.337 回答
1

另一种技术是使用splitand lindex

set the_string [lindex [split $the_string "("] 0]

这是简短而简单的,但如果你的字符串很长,可能会做很多额外的工作。

于 2012-11-01T10:05:26.670 回答