剥离字符串直到出现一个或多个字符

时间:2012-11-23 13:59:45

标签: string tcl

我对TCL的熟练程度不高,因此请求帮助提供实现以下输出所需的机制:

假设我有一个字符串,其价值是“他提供的食物(现成的冰淇淋);”

我希望这个主字符串中的子字符串为“ readymade icecream”;

此外,可以进一步剥离主弦以获得子串作为“ readymade icecream

以下是我的尝试但不起作用:

string trim $str "("

2 个答案:

答案 0 :(得分:0)

这是正则表达式使用的情况:

if {[regexp {\(([^()]*)\)} $str -> substring]} {
    puts "found $substring in parentheses"
} else {
    puts "did not find anything suitable"
}

答案 1 :(得分:0)

从左侧修剪:

 set ix [string first ( $s]
 if {$ix >= 0} {
     incr ix
     set s [string range $s $ix end]
 }
 # else the string does not contain '('

从右边修剪:

 set ix [string last ) $s]
 if {$ix >= 0} {
     incr ix -1
     set s [string range $s 0 $ix]
 }
 # else the string does not contain ')'

有关详细信息,请参阅manual pages