TCL:查找并删除字符串中第一次出现的字符串中的所有字符

时间:2012-11-01 05:39:05

标签: tcl

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

我有一个如下字符串:

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

在上面的字符串中,我需要找到第一次出现'('并删除所有字符串,然后删除它,以便结果字符串只是:

Func::set

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式执行此操作:

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

或者如果您不熟悉regexp,那么您可以采用更传统的方式:

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

有关详细信息,请参阅[string],[regsub]和[re_syntax]的手册页。

答案 1 :(得分:1)

另一种技巧是使用splitlindex

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

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