0

私はTCLにあまり熟練していないため、以下の出力を達成するために必要なメカニズムを提供するために助けを求めています:

「彼は食べ物(既製のアイスクリーム)を提供しました」という値の文字列があるとします。

このメイン文字列から部分文字列を「既製のアイスクリーム);」として取り出したいと思います。

さらに、メインストリングをさらに剥ぎ取ってサブストリングを「既製のアイスクリーム」として取得することは可能ですか?

ここに私の試みがありますが、うまくいきません:

string trim $str "("
4

2 に答える 2

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 ')'

詳細については、マニュアル ページを参照してください。

于 2012-11-23T16:10:37.663 に答える
0

これは、正規表現が適切に使用されるケースです。

if {[regexp {\(([^()]*)\)} $str -> substring]} {
    puts "found $substring in parentheses"
} else {
    puts "did not find anything suitable"
}
于 2012-11-23T14:12:12.483 に答える